目录
1、数据库安全性控制
(1)存取控制
(2)自主存取控制中的权限
(3)授权
授予(GRANT)和回收(REVOKE)
创建数据库模式
(4)数据库角色(ROLE)
2、视图机制
3、审计
(1)审计事件分类
(2)设置(AUDIT)和取消(NOAUDIT)审计
4、数据加密
(1)储存加密
(2)传输加密
5、其他安全性保护
(1)推理控制
(2)隐蔽信道
(3)数据隐私
1、数据库安全性控制
(1)存取控制
自主存取控制:不同用户对不同数据库对象有不同权限,用户可以把其权限转授给其他人,非常灵活。
强制存取控制:不同数据库对象有不同密级,每个用户有自己一定等级的许可证,对任意的对象,有合法许可证的用户才可以存取,比较严格。
(2)自主存取控制中的权限
对象类型 | 对象 | 操作类型 |
数据库模式 | 模式 | CREATE SCHEMA |
基本表 | CREATE TABLE,ALTER TABLE | |
视图 | CREATE VIEW | |
索引 | CREATE INDEX | |
数据 | 基本表和视图 | SELECT,INSERT,UPDATE,DELETE, REFERENCES,ALL PRIVILEGES |
属性列 | SELECT,INSERT,UPDATE,REFERENCES,ALL PRIVILEGES |
(3)授权
授予(GRANT)和回收(REVOKE)
--GRANT一般语法格式
GRANT 权限,权限...
ON 对象类型 对象名,对象类型 对象名...
TO 用户1,用户2...
WITH GRANT OPTION; --该语句表示获得权限的用户可以被转授给其他用户
--把查询Student表的权限给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
--把对Student表和Course表的全部权限给用户U2和U3
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U1,U3;
--把查询Student表和修改学生学号的权限给用户U4
--并允许U4将此权限授予其他用户
GRANT SELECT,UPDATE(Sno)
ON TABLE Student
TO U4
WITH GRANT OPTION;
--REVOKE一般语法格式
REVOKE 权限,权限...
ON 对象类型 对象名,对象类型 对象名...
FROM 用户... CASCADE|RESTRICT;
--回收所以用户对SC表的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
--把用户4对表Student的查询权限收回
REVOKE SELECT
ON TABLE Student
FROM U4 CASCADE;
/*级联CASCADE表示同时收回U4转授其他用户的该权限*/
创建数据库模式
--创建用户的一般格式
CREATE USER 用户名
DBA | RESOURCE | CONNECT;
DBA:超级用户,可以创建用户,创建模式、表、视图;拥有所以数据库对象的存取权限并可以将其赋予其他用户
RESOURCE:可以创建表、视图,成为创建对象的属主,属主可以将该对象的权限授予其他用户;不能创建模式、用户;
CONNECT:只能登录数据库,根据管理员或其他用户授予的权限获得范围内的权限。
(4)数据库角色(ROLE)
角色可以被授予权限,用户担任了角色就拥有其功能,一个用户可以担任多个角色,角色也可以担任其他角色
/*例:通过角色实现将一组权限赋予一个用户*/
CREATE ROLE R1; --创建一个角色
GRANT SELECT ,UPDATE ,INSERT --给角色赋予权限
ON TABLE Student
TO R1;
/*但是在SQL Server中运行时会提示“ 关键字 ‘to’ 附近有语法错误 ”
查询解决方案之后能正确运行的语句如下:GRANT SELECT ON Student TO U1;*/
GRANT R1 --对张三李四授予角色R1,获得该角色权限
TO 张三,李四;
/*回收角色*/
REVOKE R1
FROM 张三;
/*修改角色R1的权限*/
GRANT DELETE --添加角色R对表Student的DELETE权限
ON TABLE Studen
TO R1;
REVOKE SELECT --回收角色对表Student的SELECT权限
ON TABLE Student
FROM R1;
2、视图机制
通过定义不同视图,将数据对象分类限制在一定范围内,再将视图的部分或全部权限授予用户,达到对数据安全的保护。
3、审计
审计功能把用户对数据库的所有操作自动记录存放在审计日志(auditlog)中,审计员可以通过审计日志重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。
(1)审计事件分类
服务事件:服务器发生的事件,数据库的启动、停止、数据库服务器配置文件的重新加载等
系统权限:对系统拥有结构或模式对象进行操作的审计,记录通过系统获得权限的操作
语句事件:对SQL语句,DCL语句的审计
模式对象事件:对特定模式对象进行的SELECT或DML操作的审计,模式对象包括表、视图、存储过程、函数等,不包括索引、约束、触发器、分区表等
(2)设置(AUDIT)和取消(NOAUDIT)审计
--对修改SC表结构或修改SC表数据的操作审计
AUDIT ALTER ,UPDATE
ON SC;
--取消SC表的审计
NOAUDIT ALTER,UPATE
ON SC;
4、数据加密
(1)储存加密
待拓展
(2)传输加密
待拓展
5、其他安全性保护
(1)推理控制
待拓展
(2)隐蔽信道
待拓展
(3)数据隐私
待拓展