创建新用户:
CREATE USER u1 IDENTIFIED BY 'Csq200215';
CREATE USER u2 IDENTIFIED BY 'Csq200215';
。。。
CREATE USER u7 IDENTIFIED BY 'Csq200215';
创建了7个普通用户
4.1把查询Student表权限授给用户U1
首先自己创建了U1用户
CREATE USER u1 IDENTIFIED BY 'user@123';
GRANT SELECT ON TABLE Student TO U1;
自己运行效果:
用户U1只能在public模式下查询student表数据,(别的操作都不可以)对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息。
4.2把对Student表和Course表 的全部权限授予用户U2和U3
首先自己创建了U2 U3用户
GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2, U3;
自己运行效果:
用户U2和U3能在public模式下对student和course表进行任何操作(增删查改),但对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息。
4.3把对表SC的查询权限授予所有用户
GRANT SELECT ON TABLE SC TO PUBLIC;
自己运行效果:
用户U1、U2和U3(全部用户)能在public模式下对sc表进行查询操作(别的操作都不可以),对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息。
4.4把查询Student表和修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
自己运行效果:
用户U4能在public模式下对student表进行查询操作和修改学生学号(别的操作都不可以),对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息。
4.5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
自己运行效果:
用户U5能在public模式下对sc表进行插入操作、查询也可以(别的操作都不可以),对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息,U5具备传播权限。
4.6用户U5登陆情况下 U5传播INSERT权限给U6,U6也具备传播权限
GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
自己运行效果:
用户U6能在public模式下对sc表进行插入操作、查询也可以(别的操作都不可以),对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息,U6具备传播权限
4.7用户U6登陆情况下 U7具备INSERT权限,但不具备传播权限
自己运行效果:
用户U7能在public模式下对sc表进行插入操作、查询也可以(别的操作都不可以),对别的任何表都无法做到任何操作,在界面中也找不到其余表的信息,U7不具备传播权限
4.8把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
自己运行效果:
在对应数据库work4中,用户U4无法修改学生学号
4.9收回所有用户对表SC的查询权限
REVOKE SELECT ON TABLE SC FROM PUBLIC;
自己运行效果:
全部用户无法查询SC表
4.10把用户U5对SC表的INSERT权限 收回
REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;
自己运行效果:
在对应数据库work4中,用户U5、U6、U7不能在public模式下对sc表进行插入操作。
4.1 把查询activity的表的权限赋值给u1:
GRANT SELECT ON TABLE activity TO u1;
grant usage on schema cindy to u1;(这个是把cindy模式赋值给u1)
进入u1查看:select * from cindy.activity;
4.2 把查询activity表和baoxiao表的权限赋值给u2和u3
GRANT SELECT ON TABLE activity,baoxiao TO u2,u3;
将cindy的模式赋值一下:
测试一下u2:
4.3 把查询sa表的权限赋值给public(所有成员);
GRANT SELECT ON TABLE sa TO public;
4.4 把查询baoxiao表和修改报销最大金额的权限授权给用户U4;
GRANT UPDATE(bmax),SELECT ON TABLE baoxiao TO u4;
4.5 把对表student INSERT的权限赋值给u5
GRANT INSERT ON TABLE student TO u5 WITH GRANT OPTION;
插入一条数据:
INSERT INTO cindy.student VALUES ('20181320','人','4',3,'13566666666','0004');
到cindy下看看:
4.6 u5把插入student表的权限赋值给u6
grant insert on table cindy.student to u6 with grant option;
INSERT INTO cindy.student VALUES ('20181102','哈哈','4',3,'13588111666','0004');
查看一下:
4.7.u6把插入student表的权限赋值给u7
grant insert on table cindy.student to u7;
INSERT INTO cindy.student VALUES ('20181002','ok','4',3,'1355555555','0004');
测试一下是否可以更新成功~。
可知更新失败。
4.9.收回所有用户对表sa的查询权限。
执行成功之后我们发现在每个u1到u7,teach数据库下的cindy模式下的普通表均少了一张sa表。
4.10 把用户u5对SC表的INSRET权限收回。
我们可以发现:此时在u5中执行插入语句失败,说明我们的操作是成功的。