第三次作业--MSSQL数据库安全实验
任务一
管理SQL Server认证模式

任务二
管理数据库登录
(1)使用企业管理器管理Windows身份验证的登录帐号。
① 回到桌面,右击我的电脑,点击管理。





②在SQL Server Management Studio中,右击数据库,选择新建数据库








(2)使用SQL Server Management Studio管理SQL Server身份验证的登录帐号。


任务三
管理数据库用户
(1)创建数据库用户

(2)修改用户信息
用鼠标右键单击要修改的用户,在系统弹出菜单上单击“属性”
可打开“数据库用户”对话框查看该用户的信息,同时需要时能直接修改相应用户的设置信息。
(3)删除数据库用户
在企业管理器中,用鼠标右键单击要删除的数据库用户,如数据库student中的数据库用户dbuser,从快捷菜单中选择“删除”命令即可
任务四
管理数据库角色
SQL Server有自己的固有角色。固有角色是指 SQL Server预先定义好的系统角色。用户不能修改这些角色的任何属性,也不能创建新的服务器固有角色和数据库固有角色。
数据库角色是在数据库的安全级别上创建,一个数据库角色只在其所在的数据库中有效,对其他数据库无效。在数据库中,除了有固有的数据库角色外,还可以自定义数据库角色,同时根据需要,可以为数据库角色添加成员或删除自定义角色。
1.创建数据库角色



(2)删除自定义的数据库角色
注意:不能删除一个有成员的角色,在删除角色之前,应先删除其成员
任务五
管理数据库权限
权限用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQL Server之后,其用户账号所归属的NT组或角色所被赋予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在SQL Server中包括语句级权限和对象级权限。
(1)进行语句级权限管理:


图中权限设置的方法是:
许可权限中复选框单击为勾号时:表示授予该权限。
许可权限中复选框单击为叉号时:表示角色或用户不具有该操作权限。
许可权限中复选框既没勾号,也没叉号时:表示角色或用户是否具有该操作权限要根据隐含规则来决定。
这样的结果是,授予用户WinUser可以在数据库student中创建视图和表。授予用户SQLUser可以在数据库student中进行除创建视图和表以外的所有操作。
分析与思考
1、 SQL Server的Windows认证模式和混合认证模式的区别?
windows身份认证是程序安装时在sql server加入了BUILTIN\Administrators用户名,这时可以采用windows认证登录sql server 其实 差别就是一个windows使用的默认用户名登录,有sa权限,而选则身份认证时使用的是自己设置的用户名。
远程登录时其实也基本没有什么区别,只是远程采用windows身份认证时,需要将登录的计算机管理员用户加入到服务器端的信任列表中,并赋予其本机admin权限,这样就可以使用windows认证远程登录sql server服务器了
2、 分析数据库各种角色权限的异同,自定义数据库,并进行权限管理,深入理解实验原理。
什么是角色?
在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。
一个用户可拥有多种角色, 权限则可以理解为某种角色所作的限定
- 固定服务器角色:固定服务器角色是在服务器层次上定义的,它们位于从属于数据库服务器的数据库外面。包括bulkadmin、dbcreator、diskadmin、processadmin、securityadmin、serveradmin、setupadmin、sysadmin

固定数据库角色:固定数据库角色在数据库层上进行定义,它们存在于属于数据库服务器的每个数据库中。包括db_owner、db_accessadmin、db_datareader、db_datawriter、db_ddladmin、db_securityadmin、db_backoperator、db_denydatareader、db_denydatawriter。

3、 查阅近期数据库安全事件,分析攻击原理,掌握数据库安全的重要性
SQL注入攻击主要是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行 SQL语句而执行入侵者的想要的操作,下面以登录验证中的模块为例,说明SQL注入攻击的实现方法。
SQL注入攻击可以手工进行,也可以通过SQL注入攻击辅助软件如HDSI、Domain、NBSI等,其实现过程可以归纳为以下 几个阶段:
(1)寻找SQL注入点;寻找SQL注入点的经典查找方法是在有参数传入的地方添加诸如“and 1=1”、“and 1=2”以及“’”等一些特殊字符,通过浏览器所返回的错误信息来判断是否存在SQL注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情 况下都能进行注入。
(2)获取和验证SQL注入点;找到SQL注入点以后,需要进行SQL注入点的判断,常常采用2.1中的语句来进行验证。
(3)获取信息;获取信息是SQL注入中一个关键的部分,SQL注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、 数据库用户账号、数据库用户权限。如果用户权限为sa,且数据库中存在xp_cmdshell存储过程,则可以直接转(4)。
(4)实施直接控制;以SQL Server 2000为例,如果实施注入攻击的数据库是SQL Server 2000,且数据库用户为sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。
(5)间接进行控制。间接控制主要是指通过SQL注入点不能执行Dos等命令,只能进行数据字段内容的猜测。在Web应用程序中, 为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容,如果获取的是明文的口令,则可 以通过后台中的上传等功能上传网页木马实施控制,如果口令是明文的,则可以通过暴力破解其密码。


浙公网安备 33010602011771号