MySQL:用户管理
用户管理部分
一、数据库不安全因素
- 非授权用户对数据库的恶意存取和破坏;
- 数据库中重要或敏感的数据被泄露;
- 安全环境的脆弱性;
二、数据库安全的常用方法
- 用户标识和鉴别【使用口令鉴别】;:该方法由系统提供一定的方式让用户标识自己名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
- 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(I)AC),Bl级中的强制存取控制(M.AC)。
- 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
- 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放人审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
- 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
三、授权与收回权限
1、目的
维护数据库的安全性
2、命令
语法格式
授权 grant 权限1 [(列名)][, 权限2[(列名)]]…… 多个权限,用逗号隔开 on table 表名1,表名2…… 多个表,用逗号隔开 to 用户名1[IDENTIFIED BY ‘密码’], 用户名1[IDENTIFIED BY ‘密码’]…… 一样 with grant option 将权限授予他人
收回权限
revoke
权限1 [(列名)][, 权限2[(列名)]]…… 多个权限,用逗号隔开
on table 表名1,表名2…… 多个表,用逗号隔开
from ‘用户名1’@’localhost’, ‘用户名2’@’localhost’…… 一样
实例
授权 CREATE USER 'User_student'@'localhost' IDENTIFIED BY '123456'; 授权用户User_student更新权限
grant update on table t_borrow to User_student IDENTIFIED BY '123456' ; 授权用户User_student所有权限
grant all privileges on table t_return to User_student IDENTIFIED BY '123456' ; 授权所有用户所有权限 grant all privileges on table t_return to public IDENTIFIED BY '123456' ;
收回权限
收回用户user1更新权限
revoke update on table t_table from ‘user1’@’localhost’;
收回用户user1的所有权限
revoke all privileges on table t_table from ‘user1’@’localhost’;
收回所有用户的update权限
revoke update on table t_table from ‘user1’@’localhost’;
四、授权权限表
2.2学生权限表
授权用户名 |
被授权的用户 |
数据库对象名 |
允许的操作类型 |
能否被授权 |
dba |
User_Student |
t_book |
select |
否 |
dba |
User_Student |
T_return |
update |
否 |
dba |
User_Student |
t_borrow |
update |
否 |