实验七 数据库的安全性设计(验证)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七数据库的安全性设计

实验学时:1学时

实验类型:验证

实验要求:必做

一、实验目的

加深对数据安全性的理解,并掌握SQL Server 2008中有关用户,角色及操作权限的管理方法。

二、实验内容

1、在SQL Server企业管理器中,设置SQL Server的安全认证模式。

SQL Server 2008中,用户分为2类,一类是服务器登录用户,一类是数据库登录用户,这两类用户综合起来才能完成对数据库的管理和权限设置。下面先介绍如何创建服务器登录账号。

SQL Server 2008的服务器登录方式有2种,一种是windows身份登录账号,一种是SQL Server身份登录账号。

1.1创建使用windows身份验证的SQL Server登录名

首先创建需要的windows用户。找到【控制面板】下的【管理工具】中找到【计算机管理】,打开【本地用户和组】节点,点击【用户】,在用户列表右击,选择【新用户】

在弹出的对话框中输入自己需要的用户名和密码,如下所示:

然后打开SQL Server Management Studio,在【对象资源管理器】中展开【安全性】节点,在【登录名】下面可查看已经存在的登录账号,右键点击【安全性】,选择【新

建】—【登录】,点击下图所示【搜索】

使用【高级】按钮查找已经存在的用户:

确定后,在【对象资源管理器】下的登录名中,可以看到刚刚创建的用户:

1.2 创建使用SQL Server身份验证的SQL Server 登录名右键点击【登录名】选择【新建登录名】:

选中SQL Server身份验证,填入登录名和密码:

1.3 利用SQL语句创建登录账号

Windows身份验证:

CREATE LOGIN"2011-20120510CI\sqlServerUser3"FROM WINDOWS

SQL Server身份验证:

CREATE LOGIN"sqlServerUser4"WITH PASSWORD='123456'

1.4 使用系统存储过程创建登录账号

Windows身份验证:

sp_grantlogin'2011-20120510CI\sqlServerUser5'

SQL Server身份验证:

sp_addlogin'sqlServerUser6','123456'

1.5 删除登录账号

可以直接在SQL Server Management Studio中点击删除,也可使用T-sql语句

删除windows登录账号:sp_revokelogin"2011-20120510CI\sqlServerUser1" 删除SQL server登录账号:sp_droplogin sqlServerUser4

1、通过SQL Server企业管理器,实现对SQL Server的用户和角色管理。

前面已经介绍了登录账号,现在介绍如何创建数据库用户。即某个具体的数据库用户。

在【对象资源管理器】的【数据库】节点中,找到需添加用户的数据库,如“xscjglxt”,展开【xscjglxt】节点,右击【安全性】节点,弹出功能列表,选择【新建】-【用户】:

默认的架构是“dbo”,默认的角色是“public”,点击【确定】创建完成,该用户出现在xscjglxt数据库的【安全性】-【用户】节点中。

SQL Server 2008中角色分为2类,分别是:服务器级别的角色和数据库级别的角色。

服务器级别角色有已经定义好的9种,在【对象资源管理器】-【安全性】-【服务器】节点下查看。

数据库级别角色在具体的数据库的【安全性】-【角色】-【数据库角色】节点下查看。

3、分别通过SQL Server企业管理器和SQL的数据控制功能,设置和管理数据操作权限。

USE STUDB

GO

--1. 新建测试用户

--1.1 添加登录用户和密码

EXEC sp_addlogin'sqlServerUser7','123456'

--1.2 使其成为当前数据库的合法用户

EXEC sp_grantdbaccess'sqlServerUser7'

--2.设置操作授权

--2.1 授予对自己数据库的所有权限

EXEC sp_addrolemember'db_owner','sp_addrolemember'

--2.2 以下是设置具体操作权限

--授予对所有用户表的操作权限

GRANT SELECT,INSERT,UPDATE,DELETE TO sqlServerUser7

--授予sqlServerUser7 SELECT,UPDATE到具体的表

GRANT SELECT,UPDATE ON SC TO sqlServerUser7

--授予sqlServerUser7 SELECT,UPDATE到具体的表和列

GRANT SELECT,UPDATE ON SC(Sno,Cno,Grade)TO sqlServerUser7

--禁止sqlServerUser7对所有用户表的操作权限

DENY SELECT,INSERT,UPDATE,DELETE TO sqlServerUser7

--禁止sqlServerUser7 SELECT,UPDATE到具体的表

DENY SELECT,UPDATE ON tb TO sqlServerUser7

--禁止sqlServerUser7 SELECT,UPDATE到具体的表和列

DENY SELECT,UPDATE ON SC(Sno,Cno,Grade)TO sqlServerUser7

--删除sqlServerUser7 对所有用户表的授权信息

REVOKE SELECT,INSERT,UPDATE,DELETE TO sqlServerUser7

--授予sqlServerUser7对具有创建表、视图、存储过程等的操作权限

GRANT CREATE TABLE,CREATE VIEW,CREATE PROC TO sqlServerUser7

--禁止sqlServerUser7对具有创建表、视图、存储过程等的操作权限

DENY CREATE TABLE,CREATE VIEW,CREATE PROC TO sqlServerUser7

--删除sqlServerUser7对具有创建表、视图、存储过程等的授权信息

REVOKE CREATE TABLE,CREATE VIEW,CREATE PROC TO sqlServerUser7

GO

--3. 删除测试用户

EXEC sp_revokedbaccess'sqlServerUser7'--移除用户对数据库的访问权限EXEC sp_droplogin'sqlServerUser7'--删除登录用户

GO

相关文档
最新文档