实验8 数据控制
- 实验目的
熟悉通过SQL对数据进行安全性控制。
- 实验内容和要求(利用EDUC学生选课数据库):
- 建立用户U1,U2,U3分别映射到登录名TLogin1,TLogin2,TLogin3,密码自设。
- 输出当前用户。
- 转到用户U1执行,查询S表,看是否拥有查询权限?
- 转到dbo下,把S表的select的权限授权给U1,且允许U1把该权限传播。
- 查看当前U1能否查询S表
- U1把查询S表的权限授权给U2
- 查看当前U2能否查询S表
- U2能否把查询S表的权限授权给U3?
- 查看当前U3能否查询S表
- 转到dbo下,把S表的insert的权限授权给U1
- 转到用户U1执行,往S表插入一条新元组,看是否能插入元组?
- U1收回U2的查询S表的权限
- dbo收回U1的查询及插入S表的权限
- 查看U1、U2是否具有查询S表的权限
三、实验报告要求:
要求:把自己所做的关键步骤进行截图,每一张截图上面签上自己的学号后三位,截图包括:关键SQL语句和执行结果,表的结构和内容的图形化显示结果。放在Word文档中,并加以文字说明。注意:实验时如果出现错误,把错误提示也要截图。
文件命名:如:1245350076-张晓明-实验8.docx
创建登录用户:
create login login_name with password=''
删除登录用户:
drop login login_name
创建数据库用并将其映射到登陆上:
create user user_name for login login_name
输出当前用户:
print user
转到用户login_name:
execute as user = 'login_name'
转到dbo下:
revert
授权:
grant 权限名
on 表明
to login_name
允许将此权限授予其他用户:
with grant option
回收:
revoke 权限名
on 对象名
from 用户名
级联 cascade 使用后系统只回收直接或间接从该用户处获得的权限