一、实验目的
本实验的目的是使学生进一步掌握 SQL Server 用户角色及权限的使用方法,加深 SQL用户管理的理解。SQL Server 的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问该数据库数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。
二、实验准备
结合课堂教学内容,了解用户及角色权限的相关知识,掌握用户管理的定义,理解用户和角色的创建和分配以及有哪些权限。
三、实验要求
- 实现对 SQL Server 的用户和角色管理;
- 设置和管理数据操作权限。
四、实验内容
针对 EDUC 数据库,使用自主存取机制设计一个具体的权限分配方案。
- 创建登录帐号
为EDUC创建以自己姓名简拼为用户名的登录用户。 - 创建用户
- 创建角色
- 授权
例如
(1)给角色 EducQueryRole 分配查询权限
(2)给角色 EducQueryRole 分配对 course 表的查看、插入和修改权限
(3)给角色 EducQueryRole 分配对 Class 表的完全控制权限
(4)给用户分配权限
(5)给用户分配某个角色权限 - 验证授权操作
- 回收角色或用户权限
五、实验步骤
--创建登录帐号
--为EDUC创建以自己姓名简拼为用户名的登录用户
USE EDUC
GO
CREATE LOGIN username WITH PASSWORD='1234'
--创建用户
USE EDUC
GO
CREATE USER username FOR LOGIN username
GO
--创建角色
USE EDUC
GO
CREATE role EducQueryRole
GO
--授权
--给角色 EducQueryRole 分配查询权限
GRANT SELECT on TABLE student to EducQueryRole
--给角色 EducQueryRole 分配对 course 表的查看、插入和修改权限
GRANT SELECT,INSERT,UPDATE on course TO EducQueryRole
--给角色 EducQueryRole 分配对 Class 表的完全控制权限
GRANT ALL PRIVILEGES ON CLASS TO EducQueryRole
--给用户分配权限
GRANT ALL PRIVILEGES ON CLASS TO EducQueryRole
--给用户分配某个角色权限
EXEC sp_addrolemember 'EducQueryRole','username'
--验证授权操作
--以自己创建的用户名登入后再对EDUC数据库进行相关操作
--回收角色或用户权限
--收回角色 EducQueryRole 的查询权限
REVOKE SELECT on student TO EducQueryRole
--收回角色 EducQueryRole 对 course 表的查看、插入和修改权限
REVOKE SELECT,INSERT,UPDATE on course TO EducQueryRole
--收回角色 EducQueryRole 对 Class 表的完全控制权限
REVOKE ALL PRIVILEGES on class TO EducQueryRole