第8章 数据库的安全与完整性约束
8.1 数据库的安全
8.1.1 何谓数据库的安全
8.1.2 DBMS的安全机制
视图机制
为不同的用户定义不同的视图,可以限制各个用户的访问范围
用户标识与鉴别(User Identification & Verification)
存取控制(Access Control)
授权(Authorization): 对用户存取权限的定义
集中式授权:由DBA统一定义和管理。
分散式授权:由DBA及授权的用户分散定义和管理
证实(Authentication):在查询处理时由DBMS统一实施权限检查。只有检查“通过”才能执行相应的操作。
特权(Privilege): 执行一种特殊类型的SQL语句或存取(另一用户的)模式对象的权力。
系统特权(System Privilege)
ALTER ANY TABLE -允许被授权者修改任何模式中的任何表/视图的定义。
CREATE TABLE -允许被授权者在自己模式中创建表。
GRANT ANT PRIVILEGE-允许被授权者将任何系统特权授给其他用户。
对象特权(Object Privilege)
SELECT ON emp -允许被授权者在emp表上查询数据。
DELETE ON emp -允许被授权者在emp表上删除数据。
UPDATE (ename, sal ) ON emp -允许被授权者在emp表的ename列、sal列上更新数据。
角色(Role)
一组特权集合的一个命名,可授予其他角色/用户。
可通过对角色的授权和回收操作来达到对具有该角色的用户的授权功能。
系统总是预定义了一些例行的角色;DBA或授权用户也可以创建其他角色。
系统提供的与角色有关的操作
- 创建、删除、修改功能
- 将某个权限授给一个角色
- 从一个角色那里回收某个权限
- 将某个角色授给一个用户
- 从一个用户那里回收某个角色
授权的SQL DDL / DCL语句
创建角色: CREATE ROLE 角色名…;
删除角色: DROP ROLE 角色名;
授予系统特权
GRANT 系统特权名/角色名… TO 用户名/角色名…;
收回系统特权:
REVOKE 系统特权名/角色名… FROM 用户名/角色名… ;
授予对象特权
GRANT 对象特权名… ON 对象标识 TO 用户名/角色名…;
收回对象特权:
REVOKE 对象特权名…ON 对象标识 FROM 用户名/角色名… ;
审计(Audit)
对选定的用户动作进行监控和记录。
数据加密(Data Encryption)
数据加密存储/传输。DBMS必须支持数据加密/解密