码迷,mamicode.com
首页 > 数据库 > 详细

数据库 - 数据库角色

时间:2015-05-06 11:06:59      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:数据库   授权   grant   角色   权限   

数据库角色

数据库角色:被命名的一组与数据库操作相关的权限
角色是权限的集合
可以为一组具有相同权限的用户创建一个角色
简化授权的过程

一、角色的创建

CREATE  ROLE  <角色名> 

二、给角色授权

 GRANT  <权限>[,<权限>]… 
 ON <对象类型>对象名  
 TO <角色>[,<角色>]…

三、将一个角色授予其他的角色或用户

GRANT  <角色1>[,<角色2>]…
TO  <角色3>[,<用户1>]… 
[WITH ADMIN OPTION] 

四、角色权限的收回

REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
[例11] 通过角色来实现将一组权限授予一个用户。
步骤如下:
1. 首先创建一个角色 R1
    CREATE  ROLE  R1;
2. 然后使用GRANT语句,使角色R1拥有Student表的SELECTUPDATEINSERT权限
    GRANT SELECTUPDATEINSERT 
    ON TABLE Student 
    TO R1;
3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
    GRANT  R1 
    TO 王平,张明,赵玲;
4. 可以一次性通过R1来回收王平的这3个权限
     REVOKE  R1 
     FROM 王平;

[例12] 角色的权限修改
      GRANT DELETE 
      ON TABLE Student
      TO R1
[例13] 
    REVOKE SELECT 
    ON TABLE Student
    FROM  R1;

可能存在数据的“无意泄露”
原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
解决:对系统控制下的所有主客体实施强制存取控制策略

强制存取控制(MAC)

保证更高程度的安全性
用户能不能直接感知或进行控制
适用于对数据有严格而固定密级分类的部门
军事部门
政府部门
主体是系统中的活动实体
DBMS所管理的实际用户
代表用户的各进程

客体是系统中的被动实体,是受主体操纵的
文件
基表
索引
视图

敏感度标记(Label)
绝密(Top Secret)
机密(Secret)
可信(Confidential)
公开(Public)

主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体
修正规则
主体的许可证级别 <=客体的密级 ? 主体能写客体
规则的共同点
禁止了拥有高许可证级别的主体更新低密级的数
据对象
DAC与MAC共同构成DBMS的安全机制
实现MAC时要首先实现DAC
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
主要功能是提供数据独立性,无法完全满足要求
间接实现了支持存取谓词的用户权限定义

[例14]建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明 

         先建立计算机系学生的视图CS_Student
              CREATE VIEW CS_Student
    AS 
    SELECT  *
    FROM   Student
    WHERE  Sdept=‘CS‘
在视图上进一步定义存取权限
     GRANT  SELECT
     ON  CS_Student  
     TO 王平 ;

     GRANT ALL PRIVILIGES
     ON  CS_Student  
     TO  张明; 
什么是审计
审计日志(Audit Log)
   将用户对数据库的所有操作记录在上面
DBA利用审计日志
   找出非法存取数据的人、时间和内容
C2以上安全级别的DBMS必须具有
审计分为
用户级审计
针对自己创建的数据库表或视图进行审计 
记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作 
系统级审计 
DBA设置 
监测成功或失败的登录要求 
监测GRANTREVOKE操作以及其他数据库级权限下的操作
AUDIT语句:设置审计功能 

NOAUDIT语句:取消审计功能 
[例15]对修改SC表结构或修改SC表数据的操作进行审计
           AUDIT ALTERUPDATE  
           ON  SC;

[例16]取消对SC表的一切审计
           NOAUDIT  ALTERUPDATE  
           ON  SC;

数据加密

防止数据库中数据在存储和传输中失密的有效手段

加密的基本思想

加密方法
替换方法
置换方法
混合方法

DBMS中的数据加密

统计数据库安全性

统计数据库
允许用户查询聚集类型的信息(如合计、平均值等)
不允许查询单个记录信息

统计数据库中特殊的安全性问题
隐蔽的信息通道
能从合法的查询中推导出不合法的信息

规则1:任何查询至少要涉及N(N足够大)个以上的记录
规则2:任意两个查询的相交数据项不能超过M个
规则3:任一用户的查询次数不能超过1+(N-2)/M
数据库安全机制的设计目标:
试图破坏安全的人所花费的代价 >> 得到的利益

数据的共享日益加强,数据的安全保密越来越重要
DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制

TCSEC和CC

实现数据库系统安全性的技术和方法
存取控制技术
视图技术
审计技术
自主存取控制功能
通过SQL 的GRANT语句和REVOKE语句实现
角色
使用角色来管理数据库权限可以简化授权过程
CREATE ROLE语句创建角色
GRANT 语句给角色授权

数据库 - 数据库角色

标签:数据库   授权   grant   角色   权限   

原文地址:http://blog.csdn.net/wangzi11322/article/details/45531609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!