一路向北~~
努力才会有惊喜
1、实验目的
(1)了解 SQL Serer 数据库系统中数据访问控制的基本方法
(2)了解使用 SSMS 如何给用户授权
(3)熟练掌握常用 GRANT 和 REVOKE 进行权限控制
(4)验证数据库系统的访问控制
2、实验平台
使用 SQL Server 数据库管理系统提供的 SSMS。
3 实验内容及要求
实验应包括如下方面的内容:
 创建新的数据库用户
 对上一实验建立的表进行权限设置
 检查数据库用户的权限
 撤销用户权限
实验报告
要求写出实验的基本过程。
参考示例:
在 SQL Server 中,对用户访问数据库的权限管理可以使用两种方式,一种是使用 SSMS
的图形界面进行管理,一种是使用 SQL 语句。
3.1 使用 SSMS 的图形界面创建用户并授权
创建一个数据库用户:张明,授予他可以查询 Student 表的权限。1. 使用 SSMS 的图形界面创建登录名
在快捷菜单中选择“新建登录名”:

进入“登录名”窗口,输入登录信息:

按“确定”创建登录名。使用该名称可以登录数据库服务器。2. 使用 SSMS 的图形界面创建数据库用户

选择“ST”数据库,在快捷菜单中选择“新建登录名”:

进入“数据库用户”窗口,输入用户名和登录名:

注意:登录名是用户登录数据库系统的名称,用户名是该登录用户在指定数据库中的名

称,两者可以相同。
按“确定”创数据库用户。3. 使用 SSMS 的图形界面进行授权,设置用户对对象的访问权限
展开 ST 数据库的“安全性”下的“用户”,选择“张明 db”。
(1)打开用户属性窗口:

在“选择对象类型”窗口中选择“表” 。

(2)在属性窗口的“安全对象”页中进行设置权限

选择要访问的表 Student,在下面的权限列表中点击“选择”权限的“授予”检查框。

按“确定”授予“张明”可以查询 Student 表的权限。3.2 使用SQL语句创建用户并授权
在 ST 或 TEST 数据库中,使用 SQL 语句创建两个数据库用户,对数据库中的 Student、
SC、和 Course 表,分别对其授予不同的访问权限,如下表。
                                        表 3.1 授予用户权限

1. 创建登录名

用户要访问数据库,必须首先登录到服务器上。因此,首先需要为用户创建登录名。以
系统管理员账户登录,进入数据库服务器,执行以下的操作。
(1)分别创建两个登录名王明和李刚:
CREATE LOGIN 王明 WITH password='123456'
CREATE LOGIN 李刚 WITH password='123456'
其中:“王明”、“李刚”是用于登录数据库器的登录名,Password 用于指定用户登录密码。
(2)展开服务器的“安全性”下的“登录名”,检查登录名是否创建成功。
2. 创建数据库用户
用户登录服务器后,要进入某一数据库访问,需要为登录用户在该数据库中建立一个数
据库用户名。
对创建的两个登录名,在 TEST 数据库分别为其创建两个数据库用户:
(1)切换到 TEST 数据:
USE TEST
(2)创建登录名在 TEST 数据库中的用户:
CREATE USER 王明db FOR LOGIN 王明
CREATE USER 李刚 FOR LOGIN 李刚
其中:“王明”是登录名,“王明 db”是该登录名在 TEST 数据库的用户名。这两个名称也
可以同名。
(3)展开 ST 数据库的“安全性”下的“用户”,检查数据库用户是否创建成功。
3. 授权
在数据库中添加新用户后,新用户没用访问数据库中数据的权限,需要数据库管理人员
给其授予相关的权限后,才能执行相应的操作。
按照表 3.1,授权如下:
(1)授予王明权限
GRANT SELECT ON Student TO 王明db
(2)授予李刚权限
GRANT SELECT ON Student TO 李刚
GRANT INSERT,UPDATE,DELETE ON Student TO 李刚
GRANT SELECT ON Course TO 李刚
3.3 检查权限控制
分别以两个登录名登录数据库,执行一些对数据库的操作,检查用户否允许执行相关的
操作。
1. 检查王明的权限
以用户“王明”登录,执行如下的操作,检查能否正确的运行:
SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101101','高志','1008')
UPDATE Student Set Sage = Sage + 1
DELETE FROM Student Where Sno = '20101010'
SELECT * FROM Course
SELECT * FROM SC
若不能运行,请解释为什么不能执行。
2. 检查李刚的权限
以用户“李刚”登录,执行如下的操作,检查能否正确的运行:
SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101201','钱红','1008')
UPDATE Student Set Sage = Sage + 1
DELETE FROM Student Where Sno = '20101210'
SELECT * FROM Course
INSERT INTO Course VALUES('20','FORTRAN语言',NULL,2)UPDATE Course Set Ccredit = 3 WHERE Cno='2'
DELETE FROM Course Where Cno = '6'
若不能运行,请解释为什么不能执行。
3. 增加李刚的权限
以用户“李刚”登录,执行如下的操作:
(1) 检查李刚能否对 SC 表执行查询、插入、修改、删除操作。
(2) 使用管理员帐号给李刚授予对 SC 表的查询、插入、修改、删除权限
(3) 再次检查李刚能否对 SC 表执行查询、插入、修改、删除操作。
3.4 撤销权限
当不希望用户执行某些对数据库的操作时,可以撤销先前授予用户的操作权限。
(1)撤销权限
以系统管理员帐号登录,撤销“李刚”对 Student 表的权限:
REVOKE SELECT ON Student FROM 李刚
REVOKE INSERT,UPDATE,DELETE ON Student FROM 李刚
(2)检查权限
以“李刚”帐号登录,检查如下的命令能否正确的运行:
SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101501','赵光','1008')
UPDATE Student Set Sage = Sage + 1
DELETE FROM Student Where Sno = '20101510'
 
 
 
 
 
 
posted on 2022-06-01 22:02  一路向北~~  阅读(187)  评论(0编辑  收藏  举报