目录



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)数据隐私

待拓展