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';