《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 协议 ,转载请注明出处!