“21天好习惯“第一期-15

数据库安全性

授权与回收

GRANT

GRANT 语句的一般格式:

       GRANT <权限>[,<权限>]...

       [ON <对象类型> <对象名>]

       TO <用户>[,<用户>]...

       [WITH GRANT OPTION];

语义:将对指定操作对象的指定操作权限授予指定的用户
发出 GRANT
DBA
数据库对象创建者(即属主 Owner
拥有该权限的用户

按受权限的用户
一个或多个具体用户
PUBLIC (全体用户) 

 

WITH GRANT OPTION 子句 :
指定:可以 再授予
没有指定: 不能传播
不允许循环授权

 

例如

把查询Student表权限授给用户U1

      GRANT   SELECT 
      ON   TABLE   Student 
      TO   U1;

 

例如

把对Student表和Course表的全部权限授予用户U2U3

      GRANT ALL PRIVILIGES 
      ON TABLE Student, Course 
      TO U2, U3;

 

例如

把对表SC的查询权限授予所有用户

     GRANT SELECT 
     ON TABLE SC 
	  TO PUBLIC;

 

例如

把查询Student表和修改学生学号的权限授给用户U4

GRANT UPDATE(Sno), SELECT 
		ON TABLE Student 
		TO U4;

对属性列的授权时必须明确指出相应属性列名  

例如

把对表SCINSERT权限授予U5用户,并允许他再将此权限授予其他用户

    GRANT INSERT 
    ON TABLE SC 
    TO U5
    WITH GRANT OPTION;

 

执行例5后,U5不仅拥有了对表SCINSERT权限,

 还可以传播此权限

例如

GRANT INSERT ON TABLE SC TO U6
        WITH GRANT OPTION;

 同样,U6还可以将此权限授予U7

例如

GRANT INSERT ON TABLE SC TO U7;

 

U7不能再传播此权限。

下表是执行了[例1]到[例7]的语句后,学生-课程数据库中的用户权限定义表

授权用户名

被授权用户名

数据库对象名

允许的操作类型

能否转授权

DBA

U1

关系Student

SELECT

不能

DBA

U2

关系Student

ALL

不能

DBA

U2

关系Course

ALL

不能

DBA

U3

关系Student

ALL

不能

DBA

U3

关系Course

ALL

不能

DBA

PUBLIC

关系SC

SELECT

不能

DBA

U4

关系Student

SELECT

不能

DBA

U4

属性列Student.Sno

UPDATE

不能

DBA

U5

关系SC

INSERT

U5

U6

关系SC

INSERT

U6

U7

关系SC

INSERT

不能

授予的权限可以由 DBA 或其他授权者用 REVOKE 语句收回
REVOKE 语句的一般格式为:

      REVOKE <权限>[,<权限>]...

      [ON <对象类型> <对象名>]

      FROM <用户>[,<用户>]...;

例如 

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

REVOKE UPDATE(Sno)
		ON TABLE Student 
		FROM U4;

例如

收回所有用户对表SC的查询权限

REVOKE SELECT 
		ON TABLE SC 
		FROM PUBLIC;

例如

把用户U5SC表的INSERT权限收回

REVOKE INSERT 
		ON TABLE SC 
		FROM U5 CASCADE ;
将用户 U5 INSERT 权限收回的时候必须级联( CASCADE )收回
系统只收回直接或间接从 U5 处获得的权限

 

执行[例8]到[例10]的语句后,学生-课程数据库中的用户权限定义表

授权用户名

被授权用户名

数据库对象名

允许的操作类型

能否转授权

DBA

U1

关系Student

SELECT

不能

DBA

U2

关系Student

ALL

不能

DBA

U2

关系Course

ALL

不能

DBA

U3

关系Student

ALL

不能

DBA

U3

关系Course

ALL

不能

DBA

U4

关系Student

SELECT

不能

创建数据库模式的权限

DBA 在创建用户时实现
CREATE USER 语句格式

              CREATE  USER  <username>

            WITH][DBA | RESOURCE | CONNECT

拥有的权限

可否执行的操作

CREATE USER

CREATE SCHEMA

CREATE TABLE

登录数据库 执行数据查询和操纵

DBA

可以

可以

可以

可以

RESOURCE

不可以

不可以

不可以

不可以

CONNECT

不可以

不可以

不可以

可以,但必须拥有相应权限

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值