数据库作业11:SQL练习7 - GRANT/ REVOKE / AUDIT

1.GRANT语句的用法

   GRANT <权限>[,<权限>]... 
   ON <对象类型> <对象名>[,<对象类型> <对象名>]…
   TO <用户>[,<用户>]...
   [WITH GRANT OPTION];

WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播
语义:将对指定操作对象的指定操作权限授予指定的用户

需要注意的是:授予用户权限需要先建立用户
建立用户的步骤:

选择新建登录名
在这里插入图片描述
设置密码
在这里插入图片描述
在school数据库中新建用户
例题学习操作:
[例4.1] 把查询Student表权限授给用户U1

  GRANT   SELECT 
  ON   TABLE   Student 
  TO   U1;

在这里插入图片描述

[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3

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

在这里插入图片描述
[例4.3] 把对表SC的查询权限授予所有用户

 GRANT SELECT 
 ON TABLE SC 
  TO PUBLIC;

在这里插入图片描述
[例4.4] 把查询Student表和修改学生学号的权限授给用户U4

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

在这里插入图片描述
[例4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANT INSERT 
ON TABLE SC 
TO U5
WITH GRANT OPTION;

在这里插入图片描述
执行例4.5后,U5拥有了对表SC的INSERT权限,
并且能传播此权限:
[例4.6] GRANT INSERT

 ON TABLE SC 
 TO U6
 WITH GRANT OPTION;

同样,U6还可以将此权限授予U7:
[例4.7]

GRANT INSERT 
ON TABLE SC 
TO U7;

但因为未使用 WITH GRANT OPTION; ,U7不能再传播此权限。
2.REVOKE语句的用法

语句的一般格式为

REVOKE <权限>[,<权限>]... 
ON <对象类型> <对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]...[CASCADE | RESTRICT];
例题操作学习:

[例4.8] 把用户U4修改学生学号的权限收回

REVOKE UPDATE(Sno)
ON TABLE Student 
FROM U4;

在这里插入图片描述
[例4.9] 收回所有用户对表SC的查询权限

REVOKE SELECT 
ON TABLE SC 
FROM PUBLIC;
    

在这里插入图片描述
[例4.10] 把用户U5对SC表的INSERT权限收回

REVOKE INSERT 
ON TABLE SC 
FROM U5 CASCADE ;

在这里插入图片描述

将用户U5的INSERT权限收回的时候应该使用CASCADE,否则拒绝执行该语句
如果U6或U7还从其他用户处获得对SC表的INSERT权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限

3.ROLE语句的用法
1.角色的创建

CREATE  ROLE  <角色名> 

2.给角色授权

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

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

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

4.角色权限的收回

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

例题操作练习:
[例4.11] 通过角色来实现将一组权限授予一个用户。
步骤如下:
(1)首先创建一个角色 R1

 CREATE  ROLE  R1;

(2)然后使用GRANT语句,使角色R1拥有Student表的 SELECT、UPDATE、INSERT权限

GRANT SELECT, UPDATE, INSERT 
ON TABLE Student 
TO R1;

(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限

 GRANT  R1 
 TO 王平,张明,赵玲;

(4) 可以一次性通过R1来回收王平的这3个权限

  REVOKE  R1 
  FROM 王平;

在这里插入图片描述
在这里插入图片描述
[例4.12] 角色的权限修改

GRANT DELETE 
ON TABLE Student
TO R1;

在这里插入图片描述
[例4.13]

  REVOKE SELECT 
  ON TABLE Student
  FROM  R1;

在这里插入图片描述
4审计

什么是审计

  • 审计日志(Audit Log)
    将用户对数据库的所有操作记录在上面
  • 审计员利用审计日志
    监控数据库中的各种行为,找出非法存取数据的人、时间和内容。

审计功能的可选性

  • 审计很费时间和空间
  • DBA可以打开或关闭审计功能
  • 审计功能主要用于安全性要求较高的部门

AUDIT语句和NOAUDIT语句

  • AUDIT语句:设置审计功能
  • NOAUDIT语句:取消审计功能

例题操作练习
[例4.15] 对修改SC表结构或修改SC表数据的操作进行审计

 AUDIT ALTER,UPDATE  
 ON  SC;

[例4.16] 取消对SC表的一切审计

 NOAUDIT  ALTER,UPDATE  
 ON  SC;

作业11完成
写博客还是一个略显煎熬的过程,操作练习完成后总是拖拉到截止日才写博客,可能这就是拖延症的难捱

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值