--6.1
GRANT ALL PRIVILEGES
ON TABLE Student,Class
TO U1
WITH GRANT OPTION;
--6.2
GRANT SELECT,UPDATE(Saddress)
ON TABLE Student
TO U2;
--6.3
GRANT SELECT
ON TABLE Class
TO PUB
--6.4
CREATE ROLE R1;
GRANT SELECT,UPDATE
ON TABLE Student
TO R1;
--6.5
GRANT R1
TO U1
WITH ADMIN OPTION --将一个角色授予其他的角色或用户
******************************************************************************************
--7.1
GRANT SELECT
ON Employee,Department
TO 王明;
--7.2
GRANT INSERT,DELETE
ON Employee,Department
TO 李勇;
--7.3
GRANT UPDATE
ON Employee
WHEN Employee.name = user();
/*
这里我不是很清楚该怎么写,网上有创建视图的,我参照的这篇文章
https://blog.youkuaiyun.com/qq_42919983/article/details/103266028
里边有说user()可以获取当前用户
我本来想试试用它的语句创建个数据库试试,但是在SQL Server中会报错
就没有试成功
*/
TO PUBLIC
--7.4
GRANT SELECT,UPDATE(Salary)
ON Employee
TO 刘星
--7.5
GRANT ALTER --修改表的结构
ON Employee,Department
TO 张新;
--7.6
GRANT ALL PRIVILEGES
ON Employee,Department
TO 周平
WITH GRANT OPTION
--7.7
CREATE VIEW SALARY
AS
SELECT Department.name,MAX(Salary),MIN(Salary),AVG(Salary)
FROM Employee,Department
WHERE Employee.Dname = Department.name
GROUP BY Employee.Dname;
GRANT SELECT
ON SALARY
TO 杨兰
WITH GRANT OPTION;
/*
通过书上的例题以及这道题,我感觉视图其实更像是一个临时表
当我们要从一个表中提取一些数据
可以创建一个视图来收集这些要用的数据
*/
******************************************************************************************
--8.1
REVOKE SELECT
ON Employee,Department
FROM 王明;
--8.2
REVOKE INSERT,DELETE
ON Employee,Department
FROM 李勇;
--8.3
REVOKE SELECT
ON Employee
WHEN Employee.name = user()
FROM ALL;
--8.4
REVOKE SELECT,UPDATE(工资)
ON Employee
FROM 刘星;
--8.5
REVOKE ALTER
ON Employee,Department
FROM 张新;
--8.6
REVOKE ALL PRIVILEGES
ON Employee,Department
FROM 周平;
--8.7
REVOKE SELECT
ON SALARY
FROM 杨兰;
12-14