作者:whisper
链接:http://proprogrammar.com:443/article/565
声明:请尊重原作者的劳动,如需转载请注明出处
计算机系统中,安全措施是一级一级层层设置
数据库安全性控制的常用方法
用户身份鉴别(Identification & Authentication)
用户身份鉴别的方法
1.静态口令鉴别
2.动态口令鉴别
3.智能卡鉴别
4.生物特征鉴别
存取控制机制组成
定义用户权限, 并将用户权限登记到数据字典中
合法权限检查
用户权限定义和合法权检查机制一起组成了DBMS的存取控制子系统
自主存取控制(Discretionary Access Control ,简称DAC)
通过 SQL 的GRANT 语句和REVOKE 语句实现
关系数据库系统中存取控制对象
GRANT语句的一般格式
GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]…
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户
发出GRANT
按受权限的用户
例题
[例4.1] 把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
将一种权限授予一个用户。
[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILEGES
ON TABLE Student, Course
TO U2, U3;
一次向多个用户传播多种同类对象的权限。
[例4.3] 把对表SC的查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
[例4.4] 把查询Student表和修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT
ON TABLE Student
TO U4;
对属性列的授权时必须明确指出相应属性列名
一次完成了对基本表和属性列这些不同对象的授权。
[例4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
传播权限
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]...[CASCADE | RESTRICT];
[例4.8] 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
[例4.9] 收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
[例4.10] 把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE ;
执行例4.8~4.10语句后学生-课程数据库中的用户权限定义表
关系数据库系统中的存取权限
CREATE USER语句格式
CREATE USER <username>
[WITH][DBA|RESOURCE|CONNECT];
注: CREATE USER不是SQL标准,各个系统的实现相差甚远
权限与可执行的操作对照表
数据库安全性控制的常用方法
• 自主存取控制
• 强制存取控制
数据库角色的引入
什么是数据库角色
数据库角色:被命名的一组与数据库操作相关的权限
使用角色管理数据库权限
1.角色的创建
CREATE ROLE <角色名>
2.给角色授权
GRANT <权限>[,<权限>]…
ON <对象类型>对象名
TO <角色>[,<角色>]…
3.将一个角色授予其他的角色或用户
GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]…
[WITH ADMIN OPTION]
授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION
4.角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
用户可以回收角色的权限,从而修改角色拥有的权限
REVOKE执行者是
例题
[例4.11] 通过角色来实现权限管理。
步骤如下:
(1)首先创建一个角色 R1
CREATE ROLE R1;
(2)然后使用GRANT语句,使角色R1拥有Student表的SELECT、 UPDATE、 INSERT权限
GRANT SELECT, UPDATE, INSERT
ON TABLE Student
TO R1;
(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
GRANT R1
TO 王平,张明,赵玲;
(4)可以一次性通过R1来回收王平的这3个权限
REVOKE R1
FROM 王平;
[例4.12] 增加角色的权限
GRANT DELETE
ON TABLE Student
TO R1;
使角色R1在原来的基础上增加了Student表的DELETE 权限
[例4.13] 减少角色的权限
REVOKE SELECT
ON TABLE Student
FROM R1;
使R1减少了SELECT权限
自主存取控制缺点
可能存在数据的“无意泄露”
例: 只有财务人员有权访问职工工资表EMP-Salary
强制存取控制(MAC)
在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是系统中的活动实体
客体是系统中的被动实体,受主体操纵
敏感度标记(Label)
对于主体和客体, DBMS为它们每个实例(值)指派一个敏感度标记(Label)
敏感度标记分成若干级别
强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
DAC + MAC安全检查
实现强制存取控制MAC时要首先实现自主存取控制DAC
自主存取控制DAC与强制存取控制MAC共同构成数据库管理系统的安全机制
数据库角色
强制存取控制
亲爱的读者:有时间可以点赞评论一下
全部评论