自主存取控制方法(DAC)以及强制存取控制方法(MAC)

1自主存取控制方法:

用户权限由两要素组成:数据库对象和操作类型

存取控制的对象不仅有对象本身(表中的数据和属性列上的数据),还有数据库模式(包括模式、基本表、视图和索引的创建等)

授权:授予与回收

1.GRANT语法

        grant <权限>

        on <对象类型> <对象名>

        to <用户>

        【with grant option/ with admin option】;

其中 with grant option的意思是把这种权限再授予其他用户 ,包括(select/detele/insert/update)

with admin option的意思一样,但是指的是对表操作的权限,包含(create /drop/alter)

例:

把查询关系表department的权限给用户user1

grant select

on department

to user1;

将关系表course和takes上所有操作权限给全体用户

grant all privileges(全部权限)

on course

to public ;

grant all privileges(全部权限)

on takes

to public ;

将查询student关系表和修改学生专业dept_name(属性列)的权限给user1

grant select,update(dept_name)  //属性列要代括号

on student

to user1;

把takes上插入数据权限个user1用户,并允许将权限转授给其他用户

grant insert

on takes

to user1

with grant option;

2.REVOKE(收回权限)语句

        revoke <权限>

        on <对象类型> <对象名>

        from <用户> [cascade|restrict];

其中cascade为级联收回,例如:

a授权给b ,通过with grant option语句b获得了可以授权给其他人的能力,并且通过这个能力将自己的权限授予了c和d。

当a收回b的权限时,使用cascade关键字可以把c、d的权限一起收回。

有些数据库系统默认为cascade 

restrict暂且不知道

例如:

收回user1修改student表的学生专业dept_name的权限:

revoke update(dept_name)

on student

from user1;

收回所有用户在takes表上的查询权:

revoke selelct

on takes

from public ;

3.创建数据库模式的权限

create user <username> [with] [dba|resource|connect];

注意:

只有系统的超级用户才能创建一个新的数据库用户

新创建的书记库用户有三种权限dba|resource|connect,默认为connect权限,不能创建新用户,不能创建模式,不能创建基本表,只能登录数据库。resource权限能创建基本表和视图成为创建对象的属主,但是不能创建模式和新用户,可以用grant语句把该对象的存取权限给其他人。dba是许霆的超级用户,拥有对所有数据库对象的存取和授予权限

create user不是sql标准,不同关系型数据库的语法和内容相差甚远。

4.数据库角色

数据库角色是权限的集合,用于处理给多人相同权限的情况。

角色的创建:

        create role <角色名>

角色的授权:

        grant <权限>

        on <对象类型>对象名

        to  <角色>或<用户>;

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

        grant <角色>

        to <角色>或<用户>

        [with admin option];

角色权限的收回:

        revoke <角色>

        on <属性类型>属性名

        from <角色>;

或者不用on直接收回角色

revoke <角色>

 from <用户>

例:

将user1用户的instructor角色收回

revoke instructor

from user1;

强制存取控制方法:

主体是系统中的活动实体,包括数据库管理系统所管理的实际用户以及代表用户的各个进程,客体是系统中的被动实体,是受主体控制的,包括文件、基本表、索引、视图等。对于主体和客体,数据库管理系统为每一个实例指派一个敏感度标记,分为:绝密TS,机密S,可信C,公开P。次序为TS>S>C>P 主体的敏感度标记称为许可证级别,客体的标记为密级。

一个用户在注册入系统的时候,系统要求他对任何客体的存取必须遵顼如下规定:

1.仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应客体

2.仅当主体的许可证级别小于或等于客体的密级时,该主体才能相应客体

注意:如果违反了规则(2),就有可能把数据的密级从高流向低,导致数据泄露

强制存取控制是对于数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分割的整体,只有符合密集标记要求的用户才可以操作数据,从而提供了更加高级的安全性。

视图机制:

视图可以隐藏数据对象,只显示希望被看到的数据,从而一定程度上包含数据安全

审计:

审计功能把用户对数据库的所有操作自动记录下来放进审计日志中,审计员可以利用日志监控数据库,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。

审计事件:

1.服务器事件:审计数据库服务器发生的事件,包括数据库服务器的启动、停止、配置文件的重新加载。

2.系统权限:对系统拥有的结构或模式对象进行操作的审计,要求该操作的权限是通过系统权限获得的。

3.语句事件:对sql语句,如DDL、DML、DQL(数据查询语言)以及DCL语句的审计

4.模式对象事件:对特定模式对象上进行的select或dml操作的审计,模式对象包括表、视图、存储过程、函数等、模式对象不包括依附于表的索引、约束、触发器、分区表等。

AUDIT\NOAUDITY语句

audit用于设置审计功能

例:对修改sc表结构或修改sc表结构数据的操作进行审计

audit alter,update

on sc;

取消对sc表的一切审计

noaudit alter,update

on sc;

数据加密:

分为存储加密和传输加密

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值