1.用户管理
查看用户信息,如:select user, host from mysql.user;

1.1.创建用户
可使用create user语句创建多个可使用客户端连接服务端的用户。
创建用户时,一般需指定:
(1).用户名
(2).主机名
指明客户端可在那些机器上启动,如省略则默认为'%',表示该用户可在任意主机上启动客户端。
(3).密码
如省略则表示此用户暂不需要密码。

示例:创建一个用户名xiao,指定主机为localhost,密码为1234的用户:create user 'xiao'@'localhost' identified by '1234';

1.2.修改密码
如:alter user 'xiao'@'localhost' identified by '1111';

1.3.删除用户
如:drop user 'xiao'@'localhost';

2.权限管理
2.1.授予权限
可用grant语句来为某个用户授予权限,一般格式如下:

grant 权限名称
on 应用级别
to '用户名'@'主机名'
[with grant option]

(1).权限名称

权限名称

描述

ALL [PRIVILEGES]

代表除了GRANT OPTION,PROXY以外的其他所有权限

ALTER

修改数据库,表结构的权限

ALTER ROUTINE

修改或删除存储例程的权限

CREATE

创建数据库和表的权限

CREATE ROLE

创建角色的权限

CREATE ROUTINE

创建存储例程的权限

CREATE TABLESPACE

创建,删除和修改表空间及日志文件组的权限

CREATE TEMPORARY TABLES

创建临时表的权限

CREATE USER

创建,删除,重命名用户,及移除用户权限的权限

CREATE VIEW

创建和修改视图的权限

DELETE

删除记录的权限

DROP

删除数据库,表和视图的权限

DROP ROLE

删除角色的权限

EVENT

使用事件的权限

EXECUTE

执行存储例程的权限

FILE

允许服务器读写文件的权限

GRANT OPTION

给其他账户授予或移除权限的权限

INDEX

创建或删除索引的权限

LOCK TABLES

使用LOCK TABLES语句的权限

PROCESS

使用SHOW PROCESSLIST语句看到所有线程的权限

PROXY

使用用户代理的权限

REFERENCES

创建外键的权限

RELOAD

使用FLUSH语句的权限

REPLICATION CLIENT

查看主,从服务器的权限

REPLICATION SLAVE

从服务器可从主服务器读取二进制日志事件的权限

SELECT

使用SELECT语句的权限

SHOW DATABASES

使用SHOW DATABASES语句的权限

SHOW VIEW

使用SHOW CREATE VIEW的权限

SHUTDOWN

使用mysqladmin shutdown的权限

SUPER

使用其他诸如CHANGE REPLICATION SOURCE TO,CHANGE MASTER TO,KILL,PURGE BINARY LOGS,SET GLOBAL和mysqladmin debug命令的管理员操作的权限

TRIGGER

使用UPDATE语句的权限

USAGE

无权限

常用的主要是SELECT,INSERT,UPDATE,CREATE,DROP,ALTER等。

(2).应用级别
常用的权限的应用级别有下面这些:
a.*.* 代表全局级别,全局级别的权限作用于任何数据库下的任何对象(诸如表,视图等)。
b.数据库名.* 代表数据库级别,数据库级别的权限作用于指定数据库下的任何对象。
c.数据库名.表名 代表表级别,表级别的权限作用于表中的任何列。

(3).WITH GRANT OPTION 使用GRANT语句为某个用户授予权限时添加了WITH GRANT OPTION子句,则表示该用户可将自己拥有的权限授予其他人。

create user 'xiao'@'localhost' identified by '1234';
// 授予全局select权限
grant select on *.* to 'xiao'@'localhost' with grant option;
// 授予指定数据库下指定表的update权限
grant update on xiao.student_info to 'xiao'@'localhost' with grant option;

2.2.查看权限
如:show grants for 'xiao'@'localhost';

2.3.移除权限

REVOKE 权限名称
ON 应用级别
FROM '用户名'@'主机名';

如,REVOKE UPDATE ON xiao.student_info FROM 'xiao'@'localhost';