数据库安全性

来源:互联网 发布:arp绑定与mac绑定区别 编辑:程序博客网 时间:2024/05/16 16:53

数据库的安全性是指保护数据以防止不合法的使用所造成的数据泄露、更改或破坏

数据库安全性控制

数据库安全性控制的常用方法

  • 用户标识与鉴定
  • 存取控制
  • 视图
  • 审计
  • 密码存储

用户标识与鉴定

用户标识与鉴定是系统提供的最外层安全保护措施

存取控制

存储控制机制由定义用户权限和合法权限检查组成,是DBMS的安全子系统

常用存取控制方法

  • 自主存取控制
  • 强制存储控制

自主存储控制同伙SQL的grant语句和revoke语句实现
定义用户存取权限:定义用户可以在哪些数据库对象进行哪类操作
即要存储的数据对象、对此数据对象要进行的操作类型

定义存取权限称为授权

授权与回收

权限授予

       grant <权限>[,<权限>]...        on <对象类型> <对象名>[, <对象类型> <对象名>]…       to <用户>[,<用户>]...       [with grant option];//将对制定操作对象的制定操作权限手语指定的用户

其中 with grant option 子句表示被指定义用户有权限对其他用户再授予权限

grant selecton studentto U1with grant option;//将查询student表权限授予用户U1
grant all priviligeson student,courseto u2,u3;//将对student和course的所有权限授予用户u2、u3
grant select,update(Sno)on scto public;//将sc的查询权限及修改学生学号的权限授予所有用户//对属性授予权限时必须制定所属权限的列名

权限收回

revoke <权限>[,<权限>]... on <对象类型> <对象名>[, <对象类型> <对象名>]…      from <用户>[,<用户>]...[cascade|restrict];
revoke update(Sno)on studentfrom public;//把所有用户修改学生学号的权限收回
revoke inserton scfrom u5 cascadt;//收回权限时,对insert权限进行级联收回(cascade),即系统只回收直接或间接从u5获得的权限

数据库角色

数据库角色是被命名的一组与数据库操作相关的权限

  • 角色是权限的集合
  • 可以为一组具有相同权限的用户创建一个角色
  • 方便简化授权过程

角色的创建

create role <角色名>

给角色授权

grant  <权限>[,<权限>]… on <对象类型>对象名  to <角色>[,<角色>]…

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

grant  <角色1>[,<角色2>]…to  <角色3>[,<用户1>]… [with admin option] 

角色权限的收回

revoke <权限>[,<权限>]…on <对象类型> <对象名>from <角色>[,<角色>]…

例题

create role R1;//创建一个角色R1grant select ,update ,inserton studentto R1;//授予权限grant R1to 王平,张明,李四;//角色授予revoke R1from 王平;//收回grant deleteon studentto R1;//角色权限修改

强行存取控制方法

自主存取控制方法
缺点:可能存在数据的“无意泄密”
原因:仅通过对数据的存取权限来进行安全控制,而数据本身并没有安全性标记
强制存取控制规则

  • 仅当主体的许可证级别>=客体的密级时,该主体才能呢个读取相应的客体
  • 仅当主体的许可证级别=客体的密级时,才能写相应的客体

视图机制

把要保密的数据对无权存取这些数据的用户隐藏起来,虽数据提供亿i的那个的安全保护
主要功能是提供数据的独立性,无法完全满足要求
间接实现了支持存取谓词的用户定义权限

create view cs_studentas select *from studentwhere Sdept='CS';//建立计算机系学生的视图grant selecton cs_studentto 王平;//把select权限授予王平grant all priviligeson cs_studentto 张明;//把所有权限授予张明

审计

利用日志找出非法存取数据的人、时间和内容

audit alter,updateon sc;//对修改sc表结构和修改数据操作进行审计
noaudit alter,updateon sc;//取消审计

数据加密

防止数据库中数据在存储和传输中失密的有效手段
基本思想:将原始数据(明文)变化为不可直接识别的格式(密文)

加密方法

  • 替换方法
  • 置换方法
  • 混合方法
1 0
原创粉丝点击