《MySQL必知必会》--安全管理
安全管理
数据库服务器通常包含关键的数据,确保这些数据的安全和完整需要利用访问控制。本章将学习MySQL的访问控制和用户管理。
访问控制
针对不同需求人员,授予不同控制权限。
在现实系统中,严肃使用root权限,仅在不得不使用时使用。
管理用户
MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问mysql数据库和表,但有时需要直接访问。
比如需要获取所有用户账号列表:
1 |
|
创建用户账号
1 |
|
删除用户账号
1 |
|
设置访问权限
在创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访问权限。
1 |
|
GRANT
和REVOKE
可在几个层次上控制访问权限:
- 整个服务器—-GRANT ALL//REVOKE ALL;
- 整个数据库—-(GRANT/REVOKE) ON database.*;
- 特定的表—-(GRANT/REVOKE) ON database.table;
- 特定的列;
- 特定的存储过程。
下面列出可以授予或撤销的权限
权限 | 说明 |
---|---|
ALL | 除GRANT OPTION外的所有权限 |
ALTER | 使用ALTER TABLE |
ALTER ROUTINE | 使用ALTER PROCEDURE 和DROP PROCEDURE |
CREATE | 使用CREATE TABLE |
CREATE ROUTINE | 使用CREATE ROUTINE |
CREATE TEMPORARY TABLES | 使用CREATE TEMPORARY TABLE |
CREATE USER | 使用CREATE USER, DROP USER, RENAME USER, REVOKE ALL PRIVILEGES |
CREATE VIEW | 使用CREATE VIEW |
DELETE | 使用DELETE |
DROP | 使用DROP TABLE |
EXECUTE | 使用CALL和存储过程 |
FILE | 使用SELECT INTO OUTFILE 和LOAD DATA INFILE |
GRANT OPTION | 使用GRANT和REVOKE |
INSERT | 使用INSERT |
LOCK TABLES | 使用LOCK TABLES |
PROCESS | 使用SHOW FULL PROCESSLIST |
RELOAD | 使用FLUSH |
REPLICATION CLIENT | 服务器位置的访问 |
REPLICATION SLAVE | 由复制从属关系 |
SELECT | 使用SELECT |
SHOW DATABASES | 使用SHOW DATABASES |
SHOW VIEW | 使用SHOW CREATE VIEW |
SHUTDOWN | 使用mysqladmin shutdown(用来关闭MySQL) |
SUPER | 使用CHANGE MASTER, KILL, LOGS, PURGE, MASTER和SET GLOBAL。还允许mysqladmin调试登录 |
UPDATE | 使用UPDATE |
USAGE | 无访问权限 |
更改口令
1 |
|
小结
对于管理MySQL还是很重要的。而且在权限中可以发现,还有一些自己目前没有接触过的指令。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!