数据库实验四:数据库安全性实验

本文详细介绍了如何在SQLServer环境中使用SSMS图形界面和SQL语句进行用户和角色的创建、权限分配与回收。实验涵盖了从定义用户、分配查询权限到撤销权限的整个流程,并通过具体示例展示了权限管理的步骤。
摘要由CSDN通过智能技术生成

1、实验目的

掌握自主存取控制权限的定义和维护方法。针对特定应用场景,使用自主存取控制机制设计一个具体的权限分配方案。

2、实验平台

使用SQL Server数据库管理系统提供的SSMS和查询编辑器。

3、实验内容及要求

(1)定义用户和角色
(2)分配权限给用户和角色
(3)向用户和角色回收权限
(4)以相应的用户名登录数据库验证权限分配是否正确

4、实验报告

要求写出实验的基本过程。
   
参考示例:
在SQL Server中,对用户访问数据库的权限管理可以使用两种方式,一种是使用SSMS的图形界面进行管理,一种是使用SQL语句。
一、 使用SSMS的图形界面创建用户并授权
创建一个数据库用户:张明,授予他可以查询Student表的权限。
1.使用SSMS的图形界面创建登录名
在快捷菜单中选择“新建登录名”:

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

按“确定”创建登录名。使用该名称可以登录数据库服务器。

2.使用SSMS的图形界面创建数据库用户

选择“ST”数据库,在快捷菜单中选择“新建用户”:

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

注意:登录名是用户登录数据库系统的名称,用户名是该登录用户在指定数据库中的名称,两者可以相同。
按“确定”创数据库用户。

3. 使用SSMS的图形界面进行授权,设置用户对对象的访问权限,展开ST数据库的“安全性”下的“用户”,选择“张明db”。

(1)打开用户属性窗口:

在“选择对象类型”窗口中选择“表” 。
(2)在属性窗口的“安全对象”页中进行设置权限

选择要访问的表Student,在下面的权限列表中点击“选择”权限的“授予”检查框。
按“确定”授予“张明”可以查询Student表的权限。

二、 使用SQL语句创建用户并授权

在ST或TEST数据库中,使用SQL语句创建两个数据库用户,对数据库中的Student、SC、和Course表,分别对其授予不同的访问权限,如下表。
表1 授予用户权限
用户 数据库对象 权限
查询 插入 修改 删除
王明 Student √
Course
SC
李刚 Student √ √ √ √
Course √ √
SC

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. 授权

在数据库中添加新用户后,新用户没用访问数据库中数据的权限,需要数据库管理人员给其授予相关的权限后,才能执行相应的操作。

按照表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 李刚

三、 检查权限控制

分别以两个登录名登录数据库,执行一些对数据库的操作,检查用户否允许执行相关的操作。

1. 检查王明的权限

以用户“王明”登录,执行如下的操作,检查能否正确的运行:

SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES(‘20101101’,‘高志’,‘1008’)
UPDATE Student Set Sage = Sage + 1
DELETE FROM Student Where Sno = ‘200215121’
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 = ‘200215121’
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表执行查询、插入、修改、删除操作。

四、 撤销权限

当不希望用户执行某些对数据库的操作时,可以撤销先前授予用户的操作权限。

(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’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值