数据库的安全性 sql的用户创建 角色 授权 权限控制 sql教程(五)
一、设么是数据库的安全性
数据库的安全性是指保护数据库以防止不合法使用造成的数据泄露更改或破坏。
二 、 数据库的不安全因素
1. 非授权用户对数据库的恶意存取和破坏
2. 数据库中的重要敏感信息泄露
3. 安全环境的脆弱性
三、数据库的安全级别划分
c2是安全产品的最低档,只有达到b1才能称作真正意义的安全产品
b1对标记的主体或客体实施强制存取控制以及审计等安全机制
四、数据库的安全控制
1.用户身份鉴别
用户身份鉴别是数据库提供的最外层的保护措施,主要是在系统中记录了用户的合法标识,每次访问的时候有数据库系统鉴别,通过和提供数据库操作的权限。
常见的用户身份鉴别方式
1.静态口令:比如登录密码
2.动态口令:比如短信验证码,动态令牌
3.生物特征:指纹,面部
4.智能卡鉴别
2.存取控制
存取控制主要是保证只有授权用户才有资格对数据进行操作,非授权用户不能靠近数据库
存取控制主要包括定义用户访问权限和合法操作权限检查。
存取控制权限一般有自主存取控制权限和强制存取控制权限
自主存取控住权限:用户对不同的数据库有不同权限,不用用户对同一对象也有不同权限并且用户还可以将自己的权限授权给其他人。c2安全级别的数据库就采用了这个模式
强制存取控制权限:每一个数据库都有一定的密级,每一一个用户也被授予不同级别的许可证,对于某一个对象只要合法的许可证用户才可以存取。b1安全级别的数据库采用了这个模式。
3.自主存取控制的方法
用户权限由两个要素组成数据对象和数据操作。
在数据库中定义存取权限称之为授权。
4.数据库的授权
# 创建用户
# 用户名:ghostdot ip地址:localhost 密码:handsome
create user 'ghostdot'@'localhost' identified by 'handsome';
# 将select 和 insert权限授权给user1
grant select, insert on table poets to 'ghostdot'@'localhost';
# 添加了 with grant option 该用户还可以把操作权限赋予其他用户。
grant select, insert on table poets to 'ghostdot'@'localhost' with grant option;
# 把poets表的所有权限授权给poets用户。
grant all privileges on table poets to 'ghostdot'@'localhost';
# 把权限给所有用户
grant select on table poets to public;
五. 数据库收回权限
# 从ghostdot上收回insert权限
revoke insert on table poets from 'ghostdot'@'localhost';
六. 创建用户
创建用户
create user username identified by 'password';
# 创建用户名为ghost 密码为handsome的用户名
create user ghost identified by 'handsome';
# 用户名后使用@表示定义用户来自哪里,用户检查用户来源ip是否合法
create user 'ghostdot'@'localhost' identified by 'handsome';
七.数据库的角色
数据库的角色是一组数据库操作权限的集合。
# 创建角色ghostdot
create role ghostdot
# 给角色授权
grant select, insert, updeta on table poets to ghostdot;
#通过角色授权给用户
grant ghostdot to user1;
# 收回角色
# 使user1减少R1的select权限
revoke select on poets from user1;
# 收回角色所有权限
revoke ghostdot from use1;