实验七 数据库的安全性设计(验证)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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