mysql实验8

实验八 视图

一)实验目的

掌握用户、权限、视图等操作。

(二)实验要求

请大家按要求完成实验报告,并在最后给出自己经过实验得到的总结。

(三)实验学时

2学时

)实验内容

1、实验数据:

应用第四章shop数据库来进行实验

2、实验步骤

(1)创建用户test

create user 'test'@'localhost' identified by '123456'

(2)创建视图view1从sh_goods表中查询出id,name。权限控制使用默认值,且默认安全控制由定义视图的用户权限来执行。

create view view1 as select id,name from sh_goods

(3)创建视图view2从sh_goods表中查询出id,name。权限控制为test用户,且默认安全控制由定义视图的用户权限来执行。

create view view2 as select id,name from sh_goods
grant select on view2 to test

(4)创建视图view3从sh_goods表中查询出id,name。,权限控制使用默认值,且默认安全控制由调用视图的用户权限来执行。

create sql security invoker view view3 as select id,name from sh_goods

(5)为用户test赋予对视图view1,view2,view3的select权限。

grant select on view1 to 'test'
grant select on view2 to 'test'
grant select on view3 to 'test'

(6)应用test用户查询视图view1,view2,view3,记录结果,给出原因

select * from view1
select * from view2
select * from view3

view无法查询,因为test用户没有查询的权限,无法查询view3

(7)为用户test赋予对表sh_goods查询的权限。

grant select on exp04.sh_goods to 'test'@'localhost'

(8)再一次应用test用户查询视图view1,view2,view3,记录结果,给出原因

select * from view1
select * from view2
select * from view3

(9)修改view2权限控制为root用户。

grant select on view2 to 'root'

(10)通过view1向基本表添加数据 id=15,name=HB铅笔,记录结果,给出原因

insert into view1 values(15,'HB铅笔')

(11)通过view2向基本表更新数据 id=15为id=13,记录结果,给出原因

update view2 set id=13 where id=15

(12)通过view2向基本表删除数据 id=1,记录结果,给出原因

delete from view2 where id=1

(13)删除视图view2

drop view view2

(14)查看sh_goods表数据,记录结果,给出原因

select * from sh_goods

(15)创建从sh_goods表中查询出id<30的id,name的视图view4

create view view4 as select id,name from sh_goods where id<30

(16)应用级联检查创建从view4表中查询出id<30的id,name的视图view5

create view view5 as select id,name from view4 where id<30 with check option

(17)应用检查本视图规则创建从视图view4表中查询出id>20的id,name的视图view6

create view view6 as select id,name from view4 where id>20 with local check option

(18)向view5分别添加数据 id=20,id=25, id=30,记录结果,给出原因

insert into view5 (id)values(20)
insert into view5 (id)values(25)
insert into view5 (id)values(30)

view5应用了级联检查,受到where id<30的限制,不能有id>=30的数据

(19)向view6分别添加数据 id=20,id=25, id=30,记录结果,给出原因。

insert into view6 (id)values(20)
insert into view6 (id)values(25)
insert into view6 (id)values(30)

view6只检查本视图规则,只受到where id>20的限制,不能有id<=20的数据

(20)授权给test用户将自己权限赋予他人的权限,记录结果。

grant all privileges on *.* to 'test' with grant option

(21)收回test的权限,记录结果。

revoke all,grant option from 'test'

(22)删除用户test,记录结果。

drop user 'test'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值