DCL管理用户

用户权限表

放在Mysql的user表中

默认用户登录会给与用户同名的一个数据库的所有权限(比方说新建一个用户zx,然后你数据库有一个zx数据库,当登录zx用户,就会有zx数据库的权限)

用户信息查看(修改需要重启服务)

1)查看当前登录的用户
mysql>: select user();

2)root权限下可以查看所有用户信息
mysql>: select * from mysql.user;
mysql>: select * from mysql.user \G
mysql>: select user,password,host from mysql.user;

其中127.0.0.1这个host是没意义的,指定他,他密码找的还是localhost的

3)root登录下,删除游客(操作后要重启mysql服务)
mysql>: delete from mysql.user where user='';

4)root登录下,修改密码(操作后要重启mysql服务)
mysql>: update mysql.user set password=password('12345678') where host='localhost';

mysql>:update user set password for 'username'@'host' =password('密码')

password()为mysql的加密函数,登录的时候,输入的密码是通过加密的,所以在设置密码的时候要提前加密

5)没有登录
>: mysqladmin -u用户名 -p旧密码 -h域名 password "新密码"
eg>: mysqladmin -uroot -p12345678 -hlocalhost password "root"

创建用户权限管理(修改需要重启服务)

新建用户

 格式:create user "username"@"host" identified by "password";

 eg:

1.mysql->create user 'test'@'localhost' identified by 'zx';

2.mysql->create user 'test'@'192.168.11.213' identified by 'zx';

3.mysql->create user 'test'@'%' identified by 'zx';




1)授予用户通过外网IP对于该数据库的全部权限

  grant all privileges on test.* to 'test'@'%' ;

2)授予用户在本地服务器对该所有的全部权限

  grant all privileges on *.* to 'zx'@'localhost';

3)给予查询权限
   grant select on test.* to 'user1'@'localhost';

4)添加插入权限
   grant insert on test.* to 'user1'@'localhost';

5)添加删除权限
   grant delete on test.* to 'user1'@'localhost';

6)添加权限
   grant update on test.* to 'user1'@'localhost';

7)刷新权限
  flush privileges;
 
8)查看权限
  show grants;
 
9)查看某个用户的权限
  show grants for 'zx'@'%';
 
10)删除某个用户的某个表的某个权限
revoke delete on test.* from 'zx'@'localhost';

权限查看分解

**GRANT USAGE ON *.* TO 'zx'@'%' IDENTIFIED BY PASSWORD '*88B4FF8DF6ADE78A1710A231962A826C0D75E227'**

USAGE:表示可以登录

遇到错误

ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX'

1.delete删除mysql.user表里面的用户,然后在此创建报错

2.解决办法 drop user “zx”@“%”,然后就可以创建这个用户了

02-13 06:16