shujuku

4.1把查询Student的权限授给用户U1

建立新的连接

CREATE USER U1 IDENTIFIED by "U1@123456" ;

GRANT SELECT

ON TABLE student

to U1;

SELECT *

FROM student

WHERE sname='田军';

 

 

4.2把对Student表和Course表的全部操作权限授予用户U2和用户U3

CREATE USER U2 IDENTIFIED by "U2@123456" ;

CREATE USER U3 IDENTIFIED by "U3@123456" ;

 

GRANT all PRIVILEGES

on TABLE student,course

to U2,U3;

 

 

验证语句:

INSERT INTO student VALUES ('200215131','张为民','男',18,'CS'); 

 

 

 

 

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

GRANT SELECT

on TABLE sc

to public;

 

 

 

 

验证语句:

SELECT *

FROM sc

WHERE grade BETWEEN 70 AND 80

 

 

 

 

INSERT INTO sc VALUES('20181206','1224','100'); 

 

 

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

CREATE USER U4 IDENTIFIED by "U4@123456" ;

GRANT UPDATE(Sno),SELECT

ON TABLE student

TO U4;

 

 

验证语句:

UPDATE student

SET sno='200215127'

WHERE sname='王芳'; 

 

 

 

 

UPDATE student

SET sname='李雷'

WHERE sno='200215127';

 

 

4.5把对表SC insert权限授予U5用户,并将此权限在授予其他用户。

CREATE USER U5 IDENTIFIED by "U5@123456"

 

这里我发现4.3中的语句,给所有public授权对我新建的用户也是有影响的。所以试验前我revoke了U5

 

的所有权限,即使4.3中授给的是select。

 

REVOKE ALL PRIVILEGES

 

ON TABLE sc

 

from U5;
 
REVOKE ALL PRIVILEGES
ON TABLE sc
from U4;
 

 

GRANT INSERT

ON TABLE sc

to U5

WITH GRANT OPTION;

 

 

验证语句:

INSERT INTO sc VALUES('200215135','0204','1');//正确语句,sno、cno在student和course中是存在的

 

 

GRANT INSERT

ON TABLE sc

to U4;

 

INSERT INTO sc VALUES('200215126','0207','77');

 

 

 

 

 
4.6 with grantoption二次授权
(前面验证好像已经做了这个例子……)
CREATE USER U6 IDENTIFIED by "U6@123456";
REVOKE ALL PRIVILEGES
ON TABLE sc
from U6;
GRANT INSERT
ON TABLE sc
to U6
WITH GRANT OPTION;
与4.5一样,我们这次就不验证了,运行成功本身就是对with grant option 的验证。
 
4.7 直接二次授权
CREATE USER U7 IDENTIFIED by "U7@123456";
REVOKE ALL PRIVILEGES
ON TABLE sc
from U7;
GRANT INSERT
ON TABLE sc
to U7;
 
INSERT INTO sc VALUES('200215127','0208','2');

 

 



 

4.8把用户U4修改学生学号的权限收回
INSERT INTO sc VALUES('20181224','0208','2');
REVOKE UPDATE(Sno)
on TABLE student
FROM U4;

 

 

验证语句:
UPDATE student
SET sno='200215128'
WHERE sname='李小清';

 

 

4.9收回所有用户对表SC的查询权限
验证语句:
revoke SELECT
on TABLE sc
FROM public;

 

 

验证语句:
revoke SELECT
on TABLE sc
FROM public;
SELECT *
from sc
WHERE sno='20181224'and cno='0208';

 

 

4.10 把用户U5对SC表的insert权限收回。
(可知,我们是在myconnect中给U5grant的。)
REVOKE INSERT
on TABLE sc
FROM U5 cascade;

 

 

 

 

posted @ 2021-05-05 22:13  20181206丛培泽  阅读(144)  评论(0编辑  收藏  举报