数据库管理与控制中的一部分便是安全性控制(防止数据库被不合法的使用),其中安全控制方法包括
- 用户标识与识别
- 存取控制
- 视图机制
- 审计日志机制
其中存取控制方法又分为三种
自主存取控制(DAC)
强制存取控制(MAC)
基于角色的存取控制(RBAC)
接下来对MySQL的DAC进行创建用户,授予权限,撤回权限,修改密码,删除用户的操作
创建用户
/*'user_name'@'localhost'user_name为账户名,localhost为主机名,默认是%,所有主机均可访问,localhost是本机才可以访问*/
/*IDENTIFIED BY 可以省略,创建一个无密码的用户但是不推荐*/
Select password(‘123’);
/*Select password(‘123’);的结果作为之后的密码,增加安全性,当然也可以直接用明文作为密码 */
CREATE USER 'mytest'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257';
授予权限
/*对test库地使用地所有权限*/
Grant ALL on test.* to 'mytest'@'%';
/*对test库的所有表的元祖更新,和所有表和视图的查询权限*/
Grant SELECT,INSERT,DELETE,UPDATE on test.* to 'mytest'@'%';
修改密码
/*如果不加for默认为修改当前的用户的密码
’username’@’localhost’用户的指定格式必须为这样
所修改的密码格式也必须这样PASSWORD(‘......’)
*/
Set password for ’username’@’localhost’= PASSWORD(‘......’);
撤回权限
/*撤回步骤2中的权限*/
Revoke ALL on test.* from 'mytest'@'%';
Revoke SELECT,INSERT,DELETE,UPDATE From test.* to 'mytest'@'%';
删除用户
/*删除用户不会影响他创建的数据库对象,删除账户,要给出主机名,否则默认%。删除用户其权限也删除*/
Drop User user_name@localhost;