数据库安全性

.什么是数据库中的自主存取控制方法和强制存取控制方法? 

答:

自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。

强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。


4.2.4 授权与回收

    grant语句想用户授予权限。revoke语句收回授予的权限。


一、grant

    一般格式如下:

    grant <权限>,...

    on <对象类型>,...

    to <用户>,...

    [with grant option];

    其语义为:将对指定操作对象的指定操作权限授予指定的用户。with grant option 传播权限。

例1:把查询Student表的权限授予用户U1。

 SQL Code 
1
grant  select  on  table Student  to U1;

例2:把对Student表和Course表的全部操作权限授予用户U2,U3

 SQL Code 
1
grant  all  privileges  on  table Student,Course  to U2,U3;


例子4:把查询Student表和修改学生学号的权限授予用户U4。


 SQL Code 
1
grant  update(Sno), select  on  table Student  to U4;

二、revoke

  授予的权限可以有DBA或者其他授权者用revoke语句收回,revoke语句的一般格式为

  revoke <权限>,...

  on <对象类型>,...

  from <用户>,...

  [cascade|restrict];

  //级联、拒绝。

例8: 把用户U4修改学生学号的权限收回

 

 SQL Code 
1
revoke  update(Sno)  on  table Student  from U4;


例10 把用户U5对SC表的insert权限收回。

 SQL Code 
1
revoke  insert  on  table SC  from U5  cascade;

二、创建数据库模式的权限。

    grant和revoke语句向用户授予或者收回对数据的操作权限。对数据库模式的授权则由DBA在创建用户时实现。

   create user语句一般格式如下:

   create user <username>

   [with] [DBA|resource|connect];

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



4.2.5 数据库角色

    为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

一、角色创建

   create role <角色名>;

二、角色授权

   grant <权限>,...

   on <对象类型>,...

   to <角色>,...

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

   grant <角色1>,...

   to <角色3>,...

   [with admin option];

四、角色权限收回。

   revoke <权限>,...

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

   from <角色>,...

用户可以回收角色的权限,从而修改角色拥有的权限。


下面是一个例子。

 SQL Code 
1
2
3
4
5
6
7
create role r1;

grant  select, update, insert  on  table Student  to r1;

grant r1  to 王平,张明,赵玲;

revoke r1  from 王平;
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值