数据库安全实验
SQL Server提供了2种安全管理模式,即Windows 身份验证模式和混合身份验证模式。
管理SQL Server认证模式
确认 SQL Server 验证
打开SQL Server Management Studio,在“连接到服务器”对话框中按照下表选择,选择完后点击连接按钮。


在“对象资源管理器”中,右击服务器,然后单击“属性”,如果“对象资源管理器”不可见,则选择“视图”菜单上的“对象资源管理器”。

单击“安全性”,在“服务器身份验证”选项区中,选择“SQL Server 和Windows 身份验证模式”,选择身份验证模式后,单击“确定”按钮以执行该更改。

选择确定,在“对象资源管理器”中,右击服务器,然后单击“重新启动”。

在“摘要”面板中,右击“SQL Server 代理”,然后单击“启动”,当提示是否确实要启动SQLSERVERAGENT服务时,点击是。

管理数据库登录
SQL Server有两个默认的用户登录账号:即sa和administrators\builtin。
sa是系统管理员,它是SQL Server的一个超级登录账号,这个账号具有操作SQL Server服务器的一切权限。
BUILTIN\Administrators组成员的 Windows NT 4.0 或 Windows 2000 用户自动成为 sysadmin 固有服务器角色成员。
使用企业管理器管理Windows身份验证的登录帐号。
右击我的电脑,点击管理,展开系统工具-本地用户和组-用户,此时在右边可以看到当前系统中所有的用户。

在右侧空白处右击,点击新用户。 添加一个用户WinUser,并给该用户设置一个密码,密码是admin,把用户下次登录时须更改密码前面的勾选去掉,把密码永不过期的选项选上,然后点击创建

右击该用户,选择属性,点击隶属于选项卡,然后点击左下角的添加按钮, 点击左下角的高级, 点击立即查找,在搜索结果中选择 administrators。

然后点击确定按钮,会自动返回上一回话窗口, 同样点击确定。此时,在winuser属性的隶属于选项卡下可以看到,多了一个administrators,选择administrators然后点击右下角的应用,最后点击确定。
在SQL Server Management Studio中,右击数据库,选择新建数据库,在数据库名称内输入student新建一个student数据库,然后点击确定 。

展开实例下的“安全性”,右击“登录名”按钮,在弹出的快捷菜单中选择“新建登录”, 打开SQL Server登录属性对话框。在“常规”选项卡中,单击“名称”输入框右侧的“搜索”,弹出选择用户或组对话框,弹出选择用户或组对话框,点击高级,弹出新的对话框, 点击右侧的立即查找,在搜索结果中,找到winuser并选择该用户,然后点击确定, 会自动返回上一个对话框,然后点击确定,验证方式选择 “Windows 身份验证”,默认数据库选择student,完成登陆账号winuser的创建。


选择“服务器角色”选项卡。可以在服务器角色列表框中选择相应的服务器角色成员。在这里,设置登录用户winuser的服务器角色为系统管理员。

选择“用户映射”选项卡,在列表框中列出了该账号可以访问的数据库,如果单击数据库左边的复选框,表示该用户可以访问相应的数据库。在这里,选中数据库master和student左边的复选框,表示登陆用户winuser可以访问的数据库为master和student。在下方的数据库角色成员身份都选择public。然后点击确定。

在对象资源管理器中,展开安全性-登录名,可以看到winuser已存在。

同时,展开数据库-系统数据库-student-安全性-用户,在用户列表中可以看到数据库student中已经建立一个数据库用户winuser。

验证用WinUser账号登录SQL Server:首先在操作系统中注销当前用户的登陆,将用户切换到WinUser,再用此账号连接SQL Server查询分析器,用Windows身份验证登录,可以进入查询分析器,使用数据库master和student。
由于远程桌面注销会又会自动连接,所以我们需要先修改当前用户(administrator)的登录密码,右击我的电脑,点击管理,在计算机管理窗口,依次展开 系统工具-本地用户和组-用户(不会的可参考之前新建winuser时的步骤),在右侧右击administrator,选择设置密码, 设置一个密码(admin)。

然后点击左下角的开始,选择注销,弹出确认窗口,点击注销,然后会自动到登陆页面,输入之前新建的winuser和密码,点击确定登录。

登录后, 进入SQL Server Management Studio,身份验证选择 Windows 身份验证, 点击连接后,登陆成功,此时可以新建查询,使用数据库master和student。
使用SQL Server Management Studio管理SQL Server身份验证的登录帐号,使用SQL Server Management Studio管理SQL Server身份验证的登录帐号。
在 SQL Server Management Studio中,展开实例下的“安全性”,右击“登录名”按钮,在弹出的快捷菜单中选择“新建登录”,在登录名输入框内输入需要新建的用户名,这里新建的用户名是SQLUser。验证方式选择SQL Server身份验证,然后在密码框输入SQLUser的密码。这里设置成test。把强制实施密码策略的复选框去勾选去掉,默认数据库选择master,然后点击确认。注意:采用该方法创建的SQL Server登录账号只能用于登录SQL Server服务,与登录的计算机的Windows账号无关,不能用此账号登录Windows。

单击“用户映射”,在“映射到此用登录名的用户”中,将所有数据库都选中,下方的数据库角色成员身份全部选择public,然后单击确定完成账号的创建。

关闭SQL Server Management Studio重新打开,在登录页面处身份验证选择SQL Server身份验证。然后输入刚才新建的账号和密码,然后点击连接, 登录成功,此时可以新建查询来查询数据。

管理数据库用户
(1)创建数据库用户
打开SQL Server Management Studio,展开服务器-数据库,选择要创建用户的数据库,如student,展开student,用鼠标右键单击“安全性”节点,从弹出的菜单中选择“新建-用户”命令, 弹出“新建用户”对话框,在用户名输入框输入要新建的数据库用户名称,如dbuser, 在“登录名”处点击后面的按钮, 弹出选择登录名对话框,在该对话框选择浏览, 弹出查找对象对话框,在里面选择一个用户,选择administrators, 弹出查找对象对话框,在里面选择一个用户,选择administrators,然后点击确定,自动返回到选择登录名对话框,点击确定,在此用户拥有的架构勾选db_owner,数据库角色成员身份同样选择db_owner,单击“确定”按钮,即可完成数据库用户的创建。

这里不明白什么原因查找对象中并没有administrators,经过查找数据库使用SQL Server 认证会出现这种情况,将认证更改为Windows认证便可以消除。

(2)修改用户信息
用鼠标右键单击要修改的用户,在系统弹出菜单上单击“属性”,可打开“数据库用户”对话框查看该用户的信息,同时需要时能直接修改相应用户的设置信息。

(3)删除数据库用户。
在企业管理器中,用鼠标右键单击要删除的数据库用户,如数据库student中的数据库用户dbuser,从快捷菜单中选择“删除”命令即可。
管理数据库角色
1.创建数据库角色
打开SQL Server Management Studio,展开服务器-数据库,选择要创建用户的数据库,如student,展开student,用鼠标右键单击“安全性”节点,从弹出的菜单中选择“新建-数据库角色”命令,弹出“新建角色”对话框,在角色名称输入框中输入数据库新角色的名称,如NewRole,点击所有者后面的按钮, 在里面选择一个用户,在此角色拥有的架构中选择db_owner,然后点击确定,完成角色创建。


2.删除自定义的数据库角色
在SQL Server Management Studio中,用鼠标右键单击要删除的自定义角色,如NewRole,从弹出的菜单中选择“删除”命令即可删除自定义角色。
注意:不能删除一个有成员的角色,在删除角色之前,应先删除其成员。
管理数据库权限
1)进行语句级权限管理:
启动SQL Server Management Studio,展开实例数据库,右击student数据库,在弹出的快捷菜单中选择“属性”,然后选择“权限”选项卡。在用户WinUser一栏中,将“创建表”和“创建视图”选中, 在SQLUser一栏中,则选择除“创建表”和“创建视图”以外的选项。

这样的结果是,授予用户WinUser可以在数据库student中创建视图和表。授予用户SQLUser可以在数据库student中进行除创建视图和表以外的所有操作。
心得体会
通过这次试验我掌握了管理SQL Server认证模式,数据库登录,数据库用户,数据库角色,数据库权限的方法。
分析与思考
1、 SQL Server的Windows认证模式和混合认证模式的区别?
(1)Windows认证模式
SQL Server数据库系统通常运行在NT服务器平台或基于NT 构架的Windows 2000上,而NT作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,所以Windows认证模式正是利用这一用户安全性和账号管理的机制,允许SQL Server也可以使用NT的用户名和口令。在该模式下,用户只要通过Windows的认证就可连接到SQL Server,而SQL Server本身也不需要管理一套登录数据。
(2)混合认证模式
在混合认证模式下,Windows认证和SQL Server 认证这两种认证模式都是可用的。NT的用户既可以使用NT认证,也可以使用SQL Server 认证。
在SQL Server认证模式下,用户在连接SQL Server时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins中,与NT的登录账号无关。SQL Server自己执行认证处理,如果输入的登录信息与系统表syslogins 中的某条记录相匹配则表明登录成功。
2、 分析数据库各种角色权限的异同,自定义数据库,并进行权限管理,深入理解实验原理。
固定服务器角色 说 明
sysadmin 执行SQL Server中的任何动作
serveradmin 配置服务器设置
setupadmin 安装复制和管理扩展过程
securityadmin 管理登录和CREATE DATABASE的权限以及阅读审计
processadmin 管理SQL Server进程
dbcreator 创建和修改数据库
diskadmin 管理磁盘文件
3、 查阅近期数据库安全事件,分析攻击原理,掌握数据库安全的重要性。


浙公网安备 33010602011771号