mysql的用户管理和授权

Mysql的用户信息都在数据库mysql下的user表中

我们查看下mysql.user表下有几个用户

SELECT HOST,user,PASSWORD from user;

发现系统有1个默认用户

技术分享


创建一个用户

CREATE user test IDENTIFIED BY "123";  //创建一个test用户 密码是 123

 新用户创建后是外网任何机器都有权限登录,但是没有权限操作的

技术分享


现在要做的就是给test用户授权,mysql授权权限可以分为几个层级,

  1;全局层级  //这个权限就比较大了可以操作所有的数据库 它的样式规范是*.* 

  2;数据库层级  // DBNAME.*  一般用这个比较好

  3;表层级

  4;列层级

  5;子程序层级


用到的命令是

  GRANT ALL PRIVILEGES ON 层级 to 用户名@主机 IDENTIFIED BY 密码;

例如

   grant all privileges on *.* to [email protected] IDENTIFIED BY ‘123‘;  //表示我给test用户在主机172.18.18.212上登陆数据库执行全局层级 也就是说有全部权限


撤销一个用户的权限命令

 revoke  all on *.* from [email protected];

备注:虽然我执行这个命令之后但是select host,user from user;还是有相关信息,但是test用户还是有登陆权限的,就是不能操作了。

技术分享


这条命令使用之后只能撤销权限并且不能删除用户删除用户命令

mysql> delete from user where user=‘sss‘ and host=‘localhost‘ ;
mysql>flush privileges ;
Query OK, 1 row affected (0.02 sec)

技术分享


还附上一下其他删除用户的命令

 

删除一个已有的用户

DROP USER test;              //我这里删除已个用户

重命名用户

RENAME USER test to test123;   //将test用户重命名为test123

修改知道用户的密码

SET PASSWORD FOR test123=PASSWORD(‘123456‘);   //将test123的密码改为123456


记得要刷新表哦

mysql> FLUSH PRIVILEGES;



本文出自 “常想一二” 博客,请务必保留此出处http://972010.blog.51cto.com/962010/1621724

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。