实验七SQL Server安全管理SQL Server2000的安全模式分为3层结构,分别为服务器安全管理、数据库安全管理、数据库对象的访问权限管理。
通过本实验来学习登录机制、数据库用户和对象操作权限的管理方法。
[知识要点]1.SQL Server的安全模型SQL Server2000的安全模型分为3层结构,分别为:∙服务器安全管理∙数据库安全管理∙数据库对象的访问权限管理用户访问数据库时需要经历的3个阶段及相应的安全认证过程:第一阶段:用户首先要登录到SQLServer实例。
在登录时,系统要对其进行身份验证,被认为合法才能登录到SQLServer实例。
第二阶段:用户在每个要访问的数据库里必须获得一个用户账号。
SQL Server实例将SQL Server登录映射到数据库用户账号上,在这个数据库的用户账号上定义数据库的管理和数据对象的访问的安全策略。
第三阶段:用户访问数据库。
用户访问数据库对象时,系统要检查用户是否具有访问数据库对象、执行动作的权限,经过语句许可权限的验证,才能实现对数据的操作。
2.SQL Server身份验证模式身份验证用来识别用户的登录账号和用户与SQL Server相连接的合法性,如果验证成功,用户就能连接到SQL Server上。
SQL Server使用下面两种身份验证模式:∙Windows Only身份验证模式;∙SQL Server和Windows混合验证模式3.数据库用户一般情况下,用户获得登录SQLServer实例的登陆账号后,系统管理员还必须为该登录用户访问的数据库创建一个数据库用户账号,该用户登录后才可访问此数据库。
SQL Server 2000系统中有如下默认的数据库用户:∙Guest用户。
任何登录账号都可以用此账号使用数据库;∙Dbo用户。
dbo数据库用户存在于每个数据库下,对应SQL Server的固定服务器角色SysAdmin的成员账号。
4.许可权限管理许可权限指明用户获得哪些数据库对象的使用权,以及用户能够对这些对象执行何种操作。
在SQL Server中常用两种许可权限的类型:(1)语句许可SQL Server可以授予用户下列的使用许可权限:Backup Database,Backup Log,Create DataBase,Create Default,Create Function,Create Procedure,Create Rule,Create Table,Create View.(2)对象许可SQL Server可以授予用户下列数据对象的一些操作许可权限:∙表和视图的操作许可权限:SELECT , INSERT , UPDATE , DELETE ;∙列的操作许可权限:SELECT , UPDATE , REFERENCES ;∙存储过程的操作许可权限:EXECUTE。
【实验目的】●掌握创建登录账号的方法;●掌握创建数据库用户的方法●掌握语句级许可权限管理●掌握对象级许可权限管理实验7. 1 创建登录账号【实验内容】以系统管理员的身份进行下面内容的实验:∙创建使用Windows身份认证的登录账号winuser;∙创建使用SQL Server身份验证的登录账号sqluser,设置可访问数据库DB_Student. (1)创建使用Windows身份认证的登录账号winuser;(上机操作)①确认登录账号Winuser是已存在的windows中的用户账号。
如不是,则立即在操作系统中创建此用户账户(建议密码也为winuser)。
②打开创建登录账号窗口。
在企业管理其中,展开实例zh-3566,在展开“安全性”,用鼠标右键单击“登录”按钮,在弹出的快捷菜单中选择“新建登录”选项,如下图打开“新建登录”对话框。
③在“常规”选项卡中,单击“名称”输入框右侧的按钮,从列表中选择winuser账号;在”身份验证”选项区域中,选择“windows身份验证”单选按钮;其他选择默认,如右图④单击“确定”按钮,完成SQL Server登录账号Winuser的创建。
⑤查看实例zh-3566当前的登录账号,可以看到Winuser已存在。
⑥验证用winuser账号登录SQL Server。
首先在操作系统中注销当前用户的登录,然后用winuser账号登录操作系统。
再用此账号winuser 连接SQL Server查询分析器,可以连接到实例zh-3566,此用户可以使数据库master。
如下图:(2)创建使用SQL Server身份验证的登录账号sqluser,设置可访问数据库DB_Student。
①打开创建登录账号窗口。
在企业管理器中。
展开实例zh-3566,再展开“安全性”,用鼠标右键单击“登录”选项,在弹出的快捷菜单中选择“新建登录”选项,如下图:②在“常规”选项卡中,在“名称”框输入中账号sqluser;在“身份验证”选项区域中,选择“SQL Server身份验证”单选按钮;在“密码”输入框中输入sqluser;在“数据库”下拉列表框中,选择BD_student;其他选项默认(如上左图)③在“数据库访问”选项卡中,在“指定此登录可以访问的数据库”选项区域中选择DB_student,如上右图所示,观察“用户”列的变化。
④单击“确定”按钮,打开“确认密码”对话框,再次输入密码sqluser。
单击确定按钮,完成SQL Server登录账号sqluser的创建。
⑤查看实例zh-3566当前的登录账号。
如下图所示,可以看到,sqluser已存在,查看它的属性。
⑥验证用sqluser账号登录SQL Server。
用此账号sqluser连接SQL Server查询分析器,如下右图,可以进入查询分析器,并且此用户可以使用数据库DB_student。
实验7. 2 创建数据库用户【实验内容】以系统管理员的身份进行下面内容的实验:∙为登录账号winuser创建访问zh-356实例中的数据库jiaoxuedb的用户账号;∙为登录账号sqluser创建访问zh_3566实例中所有的数据库的用户账号。
(1)为登录账号winuser创建访问zh-356实例中的数据库jiaoxuedb的用户账号①启动企业管理器。
②展开实例zh-3566,再展开“安全性”选项,用鼠标单击“登录”。
③在右窗格中,用鼠标右键单击winuser,在弹出的快捷菜单中选择“属性”选择,打开winuser属性对话框,选择“数据库访问”标签。
④在“指定此登录可以访问的数据库”中选择数据库jiaoxuedb,可以看到“用户”列中显示出winuser为数据库jiaoxuedb的用户,如下左图所示。
⑤单击“确定”按钮,完成数据库jiaoxuedb用户的创建,登录账号winuser即可访问数据库jiaoxuedb。
(2)为登录账号sqluser创建访问zh_3566实例中所有的数据库的用户账号。
①启动企业管理器。
②展开实例zh-3566,再展开“安全性”选项,用鼠标单击“登录”。
③在右窗格中,用鼠标右键单击sqluser,在弹出的快捷菜单中选择“属性”选择,打开“sqluser登录属性”对话框,选择“数据库访问”标签。
④在“指定此登录可以访问的数据库”选择区域中依次选择所有数据库,可以看到在所有数据库的“用户”列中显示出sqluser,即为所有数据库的用户名,如上右图所示。
⑤单击“确定”按钮,完成数据库用户sqluser的创建,该用户可以访问所有数据库。
实验7. 3 语句级许可权限管理【实验内容】∙授予用户winuser可以在数据库jiaoxuedb中创建视图和表;∙不允许用户sqluser在数据库jiaoxuedb中创建视图和表,但允许其他操作。
(1)授予用户winuser可以在数据库jiaoxuedb中创建视图和表以系统管理员的身份进行下面内容的实验:①启动企业管理器。
②展开实例zh-3566,用鼠标右键单击jiaoxuedb,在弹出的快捷菜单中选择“属性”选项,打开数据库“jiaoxuedb属性”对话框,打开“权限”选项卡,如右图所示:③在用户winuser一行中选择“创建表“和“创建视图”选项,在用户sqluser行中,选择除“创建表”和“创建视图”以外的所有项。
④单击“确定”按钮操作完成。
实验7. 4 对象级许可权限管理【实验内容】以系统管理员的身份进行下面内容的实验:∙授予用户winuser对数据库jiaoxuedb表student的INSERT、UPDATE权限;∙授予用户sqluser对数据库jiaoxuedb表student的INSERT权限,废除对表student的UPDATE权限;∙授予用户winuser对数据库jiaoxuedb表student的列sno的SELECT、UPDATE权限,对sname的Select权限。
(1)授予用户winuser对数据库jiaoxuedb表student的INSERT、UPDA TE权限①启动企业管理器。
②在查询窗口中创建下列sql语句并执行:Use jiaoxuedbGoGrant insert,updateOn studentTo winuserGo③验证用户winuser的对象操作权限。
以winuser身份登录SQL Server,对表student进行Insert、Update操作,再尝试对表进行Delete操作,看看是否允许。
(2)授予用户sqluser对数据库jiaoxuedb表student的INSERT权限,废除对表student的UPDATE权限;①启动企业管理器。
②在查询窗口中创建下列sql语句并执行:Use jiaoxuedbGoGrant insert On student to sqluserRevoke update on student to sqluserGo③验证用户sqluser的对象操作权限。
以sqluser身份登录SQL Server,对表student进行Insert操作,再尝试对表进行update操作,看看是否允许。
(3)授予用户winuser对数据库jiaoxuedb表student的列sno的SELECT、UPDATE权限,对sname的Select权限。
①启动企业管理器。
②展开实例zh-3566,再展开数据库jiaoxuedb,单击“用户”项。
③在右窗格中,用鼠标右键单击winuser,在弹出的快捷菜单中选择“所有任务”→“权限管理”选项,如下图1所示,打开“数据库用户属性”对话框,如下图2所示。
图1图2④选择表student(或s表),再单击左下角的“列”按钮,打开“列权限”对话框,可以看到表student中所有的列,如下图3所示。
⑤在列sno行中,选择select、update,在列sname行中,选择select,单击“确定”按钮,关闭“数据库用户属性”对话框。