MYSQL账户管理及主要操作

账户管理

  • 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud
  • MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种
    • 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表
    • 数据库级别账号:对特定数据库执行增删改查的所有操作
    • 数据表级别账号:对特定表执行增删改查等所有操作
    • 字段级别的权限:对某些表的特定字段进行操作
    • 存储程序级别的账号:对存储程序进行增删改查的操作
  • 账户的操作主要包括创建账户、删除账户、修改密码、授权权限等
  • 注意:进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限

查看账户

  • 需要使用实例级账户登录后操作,以root为例
  • 主要操作包括:
    • 查看所有用户
    • 修改密码
    • 删除用户

查看所有用户

  • 所有用户及权限信息存储在mysql数据库的user表中
  • 查看user表的结构
desc user\G;
  • 主要字段说明:
    • host表示允许访问的主机
    • user表示用户名
    • authentication_string表示密码,为加密后的值
  • 查看所有用户
select host,user,authentication_string from user;

创建账户并授予权限

  • 需要使用实例级账户登录后操作,以root为例
  • 常用权限主要包括:create、alter、drop、insert、update、delete、select
  • 如果分配所有权限,可以使用all privileges

创建账户并授权

  • 语法如下:
grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

授权

  • 语法如下:
grant 权限名称 on 数据库 to 账户1,账户2,... with grant option;

示例

  • step1:使用root登录
mysql -uroot -p
回车后写密码,然后回车
  • step2:创建账户并授予所有权限,说明如下
    • 用户名为py,密码为123
    • 操作python数据库的所有对象python.*
    • 访问主机通常使用百分号%表示此账户可以使用任何ip的主机登录访问此数据库
    • 访问主机可以设置成localhost或具体的ip,表示只允许本机或特定主机访问
grant all privileges on python.* to 'py'@'%' identified by '123';
  • 查看用户有哪些权限
show grants for py;
  • step3:退出root的登录
quit
  • step4:使用py账户登录
mysql -upy -p
回车后写密码,然后回车

回收权限

  • 需要使用实例级账户登录后操作,以root为例
  • 如果不希望某用户拥有此权限,可以将此权限从用户上撤销
  • 语法如下:
revoke 权限列表 on 数据库名.* from  '用户名'@'主机';

示例

  • step1:使用py登录后,向表classes中插入数据python3
use python;
insert into classes(name) values('python3');
  • step2:退出py
quit
  • 使用root登录
mysql -uroot -p
回车后写密码,然后回车
  • step3:回收insert权限
revoke insert on python.* from 'py'@'%';
  • step4:退出root
quit
  • step5:使用py账户登录
mysql -u py -p
回车后写密码,然后回车
  • step6:向表classes中插入数据python3
use python;
insert into classes(name) values('python3');

修改密码

  • 语法1:不需登录
mysqladmin -u py -p password '新密码'
例:
mysqladmin -u py -p password '123456'
回车后写密码,然后回车
  • 语法2:使用root登录,修改mysql数据库的user表
    • 使用password()函数进行密码加密
    • 注意修改完成后需要刷新权限
update user set authentication_string=password('新密码') where user='用户名';
例:
update user set authentication_string=password('123') where user='py';刷新权限:flush privileges
  • 语法1用于账户自己修改密码
  • 语法2用于修改自己或其它账户的密码,一般是dba或经理修改员工的密码

删除账户

  • 语法1:使用root登录
drop user '用户名'@'主机';
例:
drop user 'py'@'%';
  • 语法2:使用root登录,删除mysql数据库的user表中数据
delete from user where user='用户名';
例:
delete from user where user='py';-- 操作结束之后需要刷新权限
flush privileges
  • 推荐使用语法1删除用户
  • 如果主机的字母大写时,使用语法1删除失败,采用语法2方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1656. 设计有序流(数组)

文章目录1. 题目2. 解题1. 题目 有 n 个 (id, value) 对,其中 id 是 1 到 n 之间的一个整数,value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流,以 任意 顺序获取 n 个 (id, value) 对,并在多次调用时 按 …

#define typedef 区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:areaPI*r…

flask框架+mysql数据库并与前台数据交互

在Flask使用数据库 我们将使用Flask-SQLAlchemy 的扩展来管理数据库。由SQLAlchemy项目提供的,已封装了关系对象映射(ORM)的一个插件。 ORMs允许数据库程序用对象的方式替代表和SQL语句。面向对象的操作被ORM转化为数据库命令。这样就意味着&…

Canal原理及其使用

1 什么是canal canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,canal主要支持了MySQL的binlog解析,解析完成后才利用canal client 用来处理获得的相关数据。(数据库同步需要阿里的otter中间…

LeetCode 1657. 确定两个字符串是否接近

文章目录1. 题目2. 解题1. 题目 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb操作 2:将一个 现有 字符的每次出现转换为另一…

Google C++编程风格指南(一):背景

Google 的项目大多使用 C开发。每一个 C程序员也都知道,C具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,而复杂性会使得代码更容易出现 bug、难于阅读和维护。 本指南的目的是通过详细阐述如何进行 C编码来规避其复杂性&#xf…

机器学习简介及学习思维导图

什么是机器学习机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习算…

LeetCode 1658. 将 x 减到 0 的最小操作数(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 &…

1057: [ZJOI2007]棋盘制作 - BZOJ

Description国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q&#xff0c…

机器学习:Scikit-learn与特征工程

“数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,这句话很好的阐述了数据在机器学习中的重要性。大部分直接拿过来的数据都是特征不明显的、没有经过处理的或者说是存在很多无用的数据,那么需要进行一些特征处理,特征…

Mvc系统学习9——Areas学习

在Mvc2.0中,新增加了一个特性就是Areas。在没有有使用Areas的情况下,我们的Mvc项目组织是下面这样的。当项目庞大的时候,Controllers,Model,View文件下下面势必会有很多文件。项目将难以管理。 通过使用Areas使我们可以很好的组织项目&#x…

天池 在线编程 数组游戏

文章目录1. 题目2. 解题1. 题目 样例 1 输入: [3, 4, 6, 6, 3] 输出: 7 说明: [3, 4, 6, 6, 3] -> [4, 5, 7, 6, 4] -> [5, 6, 7, 7, 5] -> [6, 7, 8, 7, 6] -> [7, 8, 8, 8, 7] -> [8, 9, 9, 8, 8] -> [9, 9, 10, 9, 9] -> [10, 10, 10, 10, 10] 来源&a…

机器学习:sklearn数据集与机器学习组成

机器学习组成:模型、策略、优化 《统计机器学习》中指出:机器学习模型策略算法。其实机器学习可以表示为:Learning RepresentationEvalutionOptimization。我们就可以将这样的表示和李航老师的说法对应起来。机器学习主要是由三部分组成&…

天池 在线编程 分割数组

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/164426199705086870/193936950952137407 2. 解题 class Solution { public:/*** param arr: an inter array * return: return the min sum*/int splitArray(vector<int> &arr) {// …

Scikit-learn的分类器算法:k-近邻及案例

k-近邻算法采用测量不同特征值之间的距离来进行分类优点&#xff1a;精度高、对异常值不敏感、无数据输入假定缺点&#xff1a;计算复杂度高、空间复杂度高使用数据范围&#xff1a;数值型和标称型一个例子弄懂k-近邻 电影可以按照题材分类&#xff0c;每个题材又是如何定义的呢…

C++ 添加程序图标到我的电脑

&#xff23;&#xff0b;&#xff0b; 像我的电脑中 百度网盘的 那图标快捷方式。如何生成的呢&#xff1f;设置程序图标到我的电脑 请看下边代码 就ok了(*^__^*) 嘻嘻…… 类似下图&#xff1a; 大家如果看我下边的不是很清楚&#xff0c;可以下载这个具体工程&#xff1b…

struts-tiles学习笔记

网上搜了一些&#xff0c;稀里糊涂的&#xff0c;要么是代码不全&#xff0c;要么是版本不对&#xff0c;还是去struts官网大概学习了一下 http://struts.apache.org/development/1.x/struts-tiles/examples.html转载于:https://www.cnblogs.com/qrlozte/p/3625254.html

Python随机数生成方法

1. random.seed(int) 给随机数对象一个种子值&#xff0c;用于产生随机序列。对于同一个种子值的输入&#xff0c;之后产生的随机数序列也一样。通常是把时间秒数等变化值作为种子值&#xff0c;达到每次运行产生的随机系列都不一样seed() 省略参数&#xff0c;意味着使用当前系…

LeetCode 1663. 具有给定数值的最小字符串(贪心)

文章目录1. 题目2. 解题1. 题目 小写字符 的 数值 是它在字母表中的位置&#xff08;从 1 开始&#xff09;&#xff0c;因此 a 的数值为 1 &#xff0c;b 的数值为 2 &#xff0c;c 的数值为 3 &#xff0c;以此类推。 字符串由若干小写字符组成&#xff0c;字符串的数值 为…

Python算法题----在列表中找到和为s的两个数字

列表data的值为[1, 3, 4, 5, 8, 9, 11]&#xff0c;找出这个列表中和为13的两个数字的所有组合。这个好找&#xff0c;上过幼儿园大班的&#xff0c;估计都能找出来。4913, 5813。如何用python写一个函数来实现呢。 解法一&#xff1a; 超级大循环 最容易想到的就是遍历啊。嵌套…