实验七 安全性定义
1 实验目的与要求
(1)掌握登录账号的创建、修改、删除和禁止操作。
(2)掌握数据库用户的添加和删除操作。
(3)掌握数据库角色的创建、删除;数据库角色成员的添加和删除。
(4)掌握权限管理中语句权限和对象权限的管理。
2 实验内容
使用订单数据库陕西特色美食OrderDB完成下面的实验内容:
(1) 分别创建登录账号ur01、ur02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。
(2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为ur03。
(3) 将员工表的所有权限授予全部用户。
(4) 授予ur03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。
(5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、PRICE列的UPDATE权限授予r3。
(6) 收回全部用户对员工表的所有权限。
(7) 将ur01、ur02两个用户赋予r3角色。
(8) 收回ur02对订单明细表所有列的SELECT权限。
(9) 在当前数据库中删除角色r4。
(10) 授予ur01建表和建视图的权限,ur01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予ur02和ur03。
参考答案
使用订单数据库完成下面的实验内容:
(1) 分别创建登录账号ur01、ur02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。
解:
a) 以sa的身份登录到master 数据库中
b) 给出命令:
sp_addlogin ur01,p888888
sp_addlogin ur02,p888888
u OrderDB
sp_addur ur01,ur01
sp_addur ur02,ur02
(2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为ur03。
解:
a) 以sa的身份登录到master 数据库中
b) 给出命令:
sp_addlogin login03,p888888
u OrderDB
sp_addur login03,ur03
(3) 将员工表的所有权限授予全部用户。
以sa的身份登录
u OrderDB
grant lect,delete,update,inrt on Employee
to ur01,ur02,ur03
(4) 授予ur03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。
以sa的身份登录
u OrderDB
grant lect on Product to ur03
grant lect,update on Employee(抓鼠神器employeeNo,employeeName) to ur03
(5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、PRICE列的UPDATE权限授予r3。
以sa的身份登录
u OrderDB
sp_addrole r3
小学二年级语文下册电子课本sp_addrole r4
grant lect on OrderDetail to r3
grant update on OrderDetail(price) to r3
(6) 收回全部用户对员工表的所有权限。
以sa的身份登录
u OrderDB
revoke lect,delete,update,inrt on Employee
from ur01,ur02,ur03
(7) 将ur01、ur02两个用户赋予r3角色。
以sa的身份登录
u OrderDB
sp_addrolemember r3,ur01
sp_addrolemember r3,ur02
(8) 收回ur02对订单明细表所有列的SELECT权限。
以sa的身份登录
u OrderDB
revoke lect on OrderDetail from ur02
(9) 在当前数据库中删除角色r4。
以sa的身份登录
u OrderDB
sp_droprole r4
(10) 授予ur01建表和建视图的权限,ur01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予ur02和ur03。
以sa的身份登录
u OrderDB
grant create table,create view to ur01
以ur01的身份登录
a)小狐狸狗u OrderDB
b)CREATE TABLE EmployeeUr01 (
employeeNo char(8) not null, /*员工编号Eyyyynnn*/
empPassword varchar(10) not null, /*登陆密码*/
empName varchar(20) not null, /*员工姓名*/中共团员
x char(1) not null
check(x='男' 无锡二日游or x='女') , /*员工性别*/
departmentNo char(3) not null, /*所属部门nnn*/
postNo char(3) not null, /*所属岗位nnn*/
birthday datetime, /*出生日期*/
salary numeric(8,2), /*薪水*/
address varchar(40), /*员工住址*/
telephone varchar(15), /*员工电话*/
email varchar(20), /*员工邮箱*/
constraint EmployeeUr01PK primary key (employeeNo)
)
c)create view ViewUr01 as
lect employeeNo,empName,birthday,telephone
表格如何筛选 向雷锋学习 from EmployeeUr01
where departmentNo like '1%'
d)grant lect on EmployeeUr01 to ur02,ur03
grant lect on ViewUr01 to ur02,ur03