合肥工业大学—SQL Server数据库实验十:用户及其权限管理

用户及其权限管理

  • 1. 创建登录名Mylog及密码
  • 2. 创建用户user2关联登录名
  • 3. 创建角色role1
  • 4. 对用户user2及角色role1授权
  • 5. 验证用户授权
  • 6. 收回用户权限


1. 创建登录名Mylog及密码

create login Mylog with password='123456'

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第1张图片



2. 创建用户user2关联登录名

-- 创建一个EDUC数据库用户user2,使其关联登录名Mylog
create user user2 for login Mylog with default_schema = DBO

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第2张图片



3. 创建角色role1

-- 创建一个EDUC数据库角色role1
create role role1

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第3张图片



4. 对用户user2及角色role1授权

1. 对角色role1进行授权

-- 将创建基本表的权限授予role1
grant create table to role1

-- 将查询学生表的权限授予角色role1
grant select on student to role1

-- 将插入选课表和修改成绩的权限授予角色role1
grant insert, update(sc_grade) on select_course to role1

2. 对用户user2进行授权

-- 将角色role1授予用户user2(添加user2为角色role1的成员)
exec sp_addrolemember role1,user2
grant alter on schema::dbo to user2

-- 将查询、插入和删除课程表的权限授予用户user2
grant select,insert,delete on course to user2


5. 验证用户授权

1)选用SQL Server用户身份验证方式,以Mylog登录名重新登录。

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第4张图片

2)将EDUC设置为当前数据库

-- 将EDUC设置为当前数据库
use EDUC

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第5张图片

3) 创建一个基本表,结构由学生自行确定,检验该用户是否具有创建基本表的权限

-- 创建一个基本表,结构由学生自行确定,检验该用户是否具有创建基本表的权限
create table usr(
	id int primary key,
	name char(10)
)
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第6张图片

报错原因:从2005开始,用户与架构分离,user2用户没有dbo架构的权限,授权时应该加

grant alter on schema::dbo to user2

4)查询学生表,检验用户是否已拥有查询学生表的权限

-- 查询学生表,检验用户是否已拥有查询学生表的权限
select * from student
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第7张图片

5)向选课表中插入一个元组,检验用户是否拥有该权限

-- 向选课表中插入一个元组,检验用户是否拥有该权限
insert into select_course values(2018217876,80,096.5)
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第8张图片

6)修改某学生、某门课的成绩,检验用户是否具有修改成绩的权限

-- 修改某学生、某门课的成绩,检验用户是否具有修改成绩的权限
update select_course set sc_grade = 100 where sc_num = 100
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第9张图片

(7)操作课程表,检验用户是否具有:查询、插入和删除的权限

-- 操作课程表,检验用户是否具有:查询、插入和删除的权限
select * from course
insert into course values(92,'计算机导论',3,null);
drop table course
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第10张图片

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第11张图片

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第12张图片



6. 收回用户权限

1、收回角色role1查询学生表的权限

以系统用户的身份重新登录

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第13张图片
-- 收回角色role1查询学生表的权限
revoke select on student from role1
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第14张图片

2、收回用户user1删除课程表元组的权限

-- 收回用户user1删除课程表元组的权限
revoke delete on course from user1
合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第15张图片

3、验证权限收回是否有效

首先重新登录,以Mylog方式登录,然后进行验证

-- 验证权限收回是否有效
select * from student
delete from course where cs_id = 100 

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第16张图片

合肥工业大学—SQL Server数据库实验十:用户及其权限管理_第17张图片

你可能感兴趣的:(合肥工业大学SQL,Server实验,数据库)