1.查看mysql的当前登陆用户
命令:select user();
mysql> select user();
mysql> select current_user();
2.查看当前用户权限
命令:show grants;
mysql> show grants;
3.查看其它用户权限
命令:show grants for user@host;(user:用户名,host:主机地址)
mysql> show grants for root@localhost;
4.创建用户并授权
命令:GRANT <privileges> ON <what> TO <user> [IDENTIFIED BY "<password>"] [WITH GRANT OPTION];
实例一:建立一个名为mytest的用户,他可以使用口令mytest从localhost连接mysql,并仅仅可以对名为mydb的数据库的全部内容进行操作(并可以将此权限赋予其他用户)
mysql> GRANT ALL ON mydb.*
实例二:现在改变这个用户的口令为123456,命令格式如下:
mysql> GRANT USAGE ON mydb.*
-> TO mytest@localhost
-> IDENTIFIED BY "123456";
实例三:我们建立一个新的名为test01的用户,他可以从test01.taosteel.cn域的任意机器连接到MySQL。他可以更新mydb数据库中users表的username字段和email字段,但是不需要查阅其它的信息。也就是说他对mydb数据库中的user表具有只读的权限(Select),但是他可以对users表的username字段和email字段执行Update操作。
mysql> GRANT select ON mydb.users
其它实例:
mysql> grant all on mydb.* to 'mytest'@'%' identified by 'mytest'; 允许从任何主机连接
mysql> grant all on mydb.* to 'mytest'@%.test.cn identified by 'mytest';允许mytest从test.cn域的任何主机连接
mysql> grant all on mydb.* to 'mytest'@'192.168.1.189' identified by 'mytest';
mysql> grant all on mydb.* to 'mytest'@'192.168.1.%' identified by 'mytest';
mysql> grant all on mydb.* to 'mytest'@'192.168.1.0/17' identified by 'mytest';
命令:revoke <privileges> (columns) on <what> from <user>;
注意:使用grant和revoke语句时,表自动重载,而你直接修改授权表时不是。