ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2020-04-03 09:04:35  阅读:936  来源: 互联网

标签:11 AUDIT REVOKE R1 GRANT Student SQL SC 权限


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

GRANT   SELECT 
ON   TABLE   Student 
TO   U1;

由于SQL Server使用的SQL语言版本为T-SQL,所以上面的命令会引发错误:
“TO”附近有语法错误。应为DOUBLECOLON,或ID。
经查阅相关资料,修改为如下命令,成功执行。

GRANT SELECT 
ON    Student 
TO   U1;

在这里插入图片描述
[4.2]
把对Student表和Course表的全部权限授予用户U2和U3。

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

由于SQL Server使用的SQL语言版本为T-SQL,所以上面的命令会引发错误:
PRIVILIGES”附近有语法错误。
经查阅相关资料,修改为如下命令,成功执行。

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

收到警告信息:
ALL 权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对实体定义了 ALL 权限。
在这里插入图片描述
[4.3]

GRANT SELECT 
ON TABLE SC 
TO PUBLIC;

由于SQL Server使用的SQL语言版本为T-SQL,所以上面的命令会引发错误:
关键字 ‘TABLE’ 附近有语法错误。
经查阅相关资料,修改为如下命令,成功执行。

GRANT SELECT 
ON  SC 
TO PUBLIC;

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

UPDATE(Sno),SELECT
ON Student
TO U4

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

GRANT INSERT
ON SC
TO U5
WITH GRANT OPTION

[4.6]
执行例4.5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:

GRANT INSERT 
ON SC 
TO U6
WITH GRANT OPTION;

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

GRANT INSERT 
ON SC 
TO U7;

执行了例4.1~例4.7语句后学生-课程数据库中的用户权限定义表:
在这里插入图片描述
[4.8]
把用户U4修改学生学号的权限收回。

REVOKE UPDATE(Sno)
ON Student
FROM U4

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

REVOKE SELECT
ON SC
FROM PUBLIC

[4.10]
把用户U5对SC表的INSERT权限收回。

REVOKE INSERT
ON SC
FROM U5 CASCADE

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

执行例4.8~4.10语句后学生-课程数据库中的用户权限定义表:
在这里插入图片描述
[4.11]
通过角色来实现将一组权限授予一个用户。

--首先创建一个角色 R1
CREATE  ROLE  R1;
--然后使用GRANT语句,使角色R1拥有Student表的	SELECT、UPDATE、INSERT权限
GRANT SELECT, UPDATE, INSERT 
ON Student 
TO R1;
--将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
GRANT R1 
TO 王平,张明,赵玲;

由于SQL Server使用的SQL语言版本为T-SQL,所以上面的命令会引发错误:
“R1”附近有语法错误。
经查阅相关资料,修改为如下命令,成功执行。

CREATE  ROLE  R1;
GRANT SELECT, UPDATE, INSERT 
ON Student 
TO R1;
ALTER ROLE R1 ADD MEMBER 王平;
ALTER ROLE R1 ADD MEMBER 张明;
ALTER ROLE R1 ADD MEMBER 赵玲;

在这里插入图片描述
也可以一次性通过R1来回收王平的这3个权限:
在这里插入图片描述
[4.12]
角色的权限修改:使角色R1在原来的基础上增加了Student表的DELETE权限。

GRANT DELETE 
ON Student
TO R1;

[4.13]
使R1减少了SELECT权限。

REVOKE SELECT 
ON Student
FROM  R1;

[4.14]
建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明。

--先建立计算机系学生的视图CS_Student
CREATE VIEW CS_Student
AS 
SELECT  *
FROM   Student
WHERE  Sdept='CS';
--在视图上进一步定义存取权限
GRANT  SELECT
ON  CS_Student  
TO 王平;

GRANT ALL 
ON  CS_Student  
TO  张明; 

在这里插入图片描述
什么是审计?

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

审计功能的可选性

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

AUDIT语句和NOAUDIT语句

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

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

AUDIT ALTER,UPDATE  
ON  SC;

“,”附近有语法错误。
[4.16]
取消对SC表的一切审计。

NOAUDIT  ALTER,UPDATE  
ON  SC;

注:上面两条命令在T-SQL下无法执行。
【总结】通过本次实验,深刻体会到了T-SQL与标准SQL在语法上的巨大差别,希望进一步理解,避免混淆。

标签:11,AUDIT,REVOKE,R1,GRANT,Student,SQL,SC,权限
来源: https://blog.csdn.net/qq_16183951/article/details/105250849

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有