实验16数据库安全性16.1目标掌握设置SQLServer认证模式方法掌握管理SQLServer登录的方法掌握进行数据库用户、权限、角色等相关基本设置的方法16.2背景知识SQLServer提供了2种安全管理模式,即Windows身份验证模式和混合身份验证模式,数据库设计者和数据库管理员可以根据实际情况进行选择。每个用户必须通过登录帐户建立自己的连接能力(身份验证),以获得对SQLServer实例的访问权限。登录名本身并不能让用户访问服务器中的数据库资源。要访问具体数据库中的资源,还必须有该数据库的用户名。新的登录创建以后,才能创建数据库用户,数据库用户在特定的数据库内创建,必须和某个登录名相关联。数据库用户创建后,通过授予用户权限来指定用户访问特定对象的权限。SQLServer数据库管理系统利用角色设置、管理用户的权限。角色的使用与Windows组的使用很相似。通过角色,可以将用户集中到一个单元中,然后对这个单元应用权限。对角色授予或收回权限时,将对其中的所有成员生效。利用角色进行权限设置可以实现对所有用户权限的设置,大大减少了管理员的工作量。此实验要求:(1)了解SQLServer的登录认证的方法。(2)已完成实验10,成功创建了数据库stu中的各个表。(3)了解数据库用户、权限、角色及相关概念。16.3实验内容16.3.1确认SQLServer验证(1)在桌面上单击【开始】,选择【程序】|【MicrosoftSQLServer2005】|【SQLServerManagementStudio】,出现【连接到服务器】对话框。(2)在【连接到服务器】对话框中,按表16-1中的指定值进行设置,然后单击【连接】按钮,如图16-1。表16-1【连接到服务器】对话框中连接信息设置属性值服务器类型数据库引擎服务器名称WIN2K3(根据服务器情况而定)身份验证Windows身份验证图16-1设置连接信息(3)如果【对象资源管理器】不可见,则选择【视图】菜单上的【对象资源管理器】。(4)在【对象资源管理器】中,右击服务器,然后单击【属性】,出现图16-2。(5)单击【安全性】。图16-2服务器属性(6)在【服务器身份验证】选项区中,可以选择身份验证模式,【Windows身份验证模式】或【SQLServer和Windows身份验证模式】,此处选择【SQLServer和Windows身份验证模式】。(7)选择身份验证模式后,单击【确定】按钮以执行该更改。(8)如果通知必须重新启动服务器,请单击【确定】。(9)在【对象资源管理器】中,右击服务器,然后单击【重新启动】。(10)当提示确认时,请单击【是】。(11)当通知【SQLServer代理】服务也将停止时,请单击【是】。(12)在【摘要】面板中,右击【SQLServer代理】,然后单击【启动】。(13)当提示确认时,单击【是】。16.3.2使用SQLServerManagementStudio管理登录在ManagementStudio中创建一个登录:(1)在【对象资源管理器】中,依次展开服务器和【安全性】。(2)右击【登录名】并单击【新建登录名】,如图16-3。图16-3新建登录(3)在【登录名—新建】对话框的【登录名】文本框中,输入【u1】。(4)在【密码】文本框中输入密码,并在【确认密码】文本框中再次输入相同密码。(5)在【默认数据库】文本框中输入u1默认使用的数据库。(6)单击【确定】按钮以创建登录。在ManagementStudio中查看登录详细信息,并做相应修改:(1)在【对象资源管理器】中,依次展开服务器和【安全性】、【登录名】。(2)选择【登录名】下的某一个登录帐户右击,在系统弹出菜单上单击【属性】,可打开【登录属性】对话框查看该登录帐户的信息,同时需要时能直接修改相应帐户的设置信息。在ManagementStudio中删除登录:(1)在【对象资源管理器】中,依次展开服务器和【安全性】、【登录名】。(2)选择【登录名】下的某一个登录帐户右击,在系统弹出菜单上单击【删除】,打开【删除对象】对话框,在对话框上单击【确定】按钮,即可删除该登录帐户。16.3.3使用SQLServerManagementStudio管理用户在ManagementStudio中创建一个用户:(1)在【对象资源管理器】中,依次展开服务器、【stu】和【安全性】。(2)右击【用户】并单击【新建用户】。(3)打开【数据库用户—新建】对话框,在【用户名】文本框中,输入u1,如图16-4。图16-4新建用户(4)单击【登录名】文本框右边的省略号,出现图16-5。图16-5选择登录名(5)在【选择登录名】对话框中,单击【浏览】,出现图16-6。图16-6查找对象(6)在【查找对象】对话框中,选中u1旁边的复选框,然后单击【确定】。(7)单击【确定】按钮,关闭【选择登录】对话框。(8)单击【确定】创建用户。在ManagementStudio中查看用户详细信息,并做相应修改:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】和【用户】。(2)选择【用户】下的某一个用户名右击,在系统弹出菜单上单击【属性】,可打开【数据库用户】对话框查看该用户的信息,同时需要时能直接修改相应用户的设置信息。在ManagementStudio中删除用户:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】和【用户】。(2)选择【用户】下的某一个用户右击,在系统弹出菜单上单击【删除】,打开【删除对象】对话框,在对话框上单击【确定】按钮,即可删除该用户。16.3.4使用SQLServerManagementStudio管理角色在ManagementStudio中添加或删除固定服务器角色成员:方法一:(1)在【对象资源管理器】中,依次展开服务器和【安全性】、【服务器角色】,显示当前数据库服务器的所有服务器角色。(2)在要添加或删除成员的某固定服务器角色上右击,并单击菜单中的【属性】,如图16-7。图16-7服务器角色属性(3)在【服务器角色属性】对话框中,单击【添加】或【删除】按钮便可实现对成员的添加或删除。方法二:(1)在【对象资源管理器】中,依次展开服务器和【安全性】、【登录名】。(2)选择【登录名】下的某一个登录帐户右击,在系统弹出菜单上单击【属性】,可打开【登录属性】对话框,或单击【新建登录名】出现【登录-新建】对话框。(3)单击【服务器角色】选项卡,能直接多项选择登录名需要属于的固定服务器角色,这样也完成了对固定服务器角色成员的添加与删除,如图16-8。图16-8登录属性在ManagementStudio中添加或删除数据库角色成员:方法一:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】、【角色】和【数据库角色】,显示当前数据库的所有数据库角色。(2)在要添加或删除成员的某数据库角色上右击,并单击菜单中的【属性】,如图16-9。图16-9数据库角色属性(3)在【数据库角色属性】对话框中,通过单击右下角的【添加】或【删除】按钮来实现对角色成员的添加或删除。方法二:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】和【用户】。(2)选择【用户】下的某一个用户名右击,在系统弹出菜单上单击【属性】,可打开【数据库用户】对话框或按【新建用户】打开【数据库-新建】对话框。(3)在【数据库角色成员身份】选项区中,能直接多项选择用户需要属于的数据库角色,这样也完成了对数据库角色成员的添加与删除,如图16-10。图16-10数据库用户在ManagementStudio中创建、修改或删除用户定义的角色:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】、【角色】和【数据库角色】,显示当前数据库的所有数据库角色。(2)在【数据库角色】目录或某数据库角色上右击,单击菜单中的【新建数据库角色】菜单项,如图16-11。图16-11数据库角色(3)在【数据库角色-新建】对话框中,输入角色名称与所有者,按【确定】按钮即简单创建了新的数据库角色。(4)在某自定义数据库角色上右击,单击菜单中的【属性】菜单项。在【数据库角色属性】对话框中,可查阅或修改角色信息,如对所有者、拥有的架构、角色成员等信息的修改等。(5)在某自定义数据库角色上右击,单击菜单中的【删除】菜单项,打开【删除对象】来删除数据库角色。但要注意:角色必须为空时才能删除。16.3.5使用SQLServerManagementStudio管理权限在ManagementStudio中为数据库用户(角色)设置权限:(1)在【对象资源管理器】中,依次展开服务器、【stu】、【安全性】和【用户(角色)】。(2)选择【用户(角色)】下的某一个用户名(角色名)右击,在系统弹出菜单上单击【属性】,打开【数据库用户(数据库角色属性)】对话框。(3)单击对话框中的【安全对象】选项卡,如图16-12:图16-12设置数据库用户(4)单击右边操作区的【添加】、【删除】按钮可以添加、删除安全对象。单击【添加】按钮,打开【添加对象】对话框,如图16-13。图16-13添加对象(5)选取相应的安全对象。单击【属于该架构的所有对象】,选择【students1】架构,单击【确定】按钮。(6)在【数据库用户(数据库角色属性)】对话框中可以对各安全对象设置相应的权限,如进行授予或取消授予、拒绝或取消拒绝、设置具有授予权限或取消授予权限等做选择操作。选中某个安全对象,然后在右下角的【……显式权限】区设置相应的权限。图16-14是对数据库用户U1属性对话框操作的情况。图16-14设置权限(7)设置完成后,单击【确定】按钮确认设置。在ManagementStudio中为数据库或表设置权限(以设置表的权限为例,数据库权限的设置相同):(1)在【对象资源管理器】中,依次展开服务器、【stu】和【表】。(2)选择【表】下的某一个表右击,如student表,在系统弹出菜单上单击【属性】,打开【表属性】对话框。(3)单击对话框中的【权限】选项卡,如图16-15:图16-15表属性(4)单击右边操作区的【添加】、【删除】按钮可以添加、删除用户或角色。单击【添加】按钮,打开【添加用户或角色】对话框,如图16-16。图16-16选择用户或角色(5)单击【浏览】按钮,打开【查找对象】对话框,如图16-17。图16-17查找对象(6)在【查找对象】对话框中选取相应的对象。选择【u2】用户,单击【确定】按钮。(7)在【表属性】对话框中可以为用户或角色设置相应的权限,如进行授予或取消授予、拒绝或取消拒绝、设置具有授予权限或取消授予权限等做选择操作。选中用户【u2】,然后在右下角的【u2的显式权限】区设置相应的权限。图16-18是数据库用户u2对表student的操作权限的设置情况。图16-18设置表权限(8)设置完成后,单击【确定】按钮确认设置。16.3.6使用Transact-SQL管理权限执行以下步骤以使用Transact-SQL进行授权:(1)在SQLServerManagementStudio中,单击工具栏上的【新建查询】按钮。(2)在新的空白查询窗口中,输入以下Transact-SQL代码。USEstuGRANTselectONstudents.studentTOu1(3)单击工具栏上的【执行】按钮,将查询student表的权限授给用户u1。(4)同样在新的空白查询窗口中,输入以下Transact-SQL代码,把表sc的查询权限授予所有用户。USEstuGRANTselectONstudents.scTOpublic(5)同样在新的空白查询窗口中,输入以下Transact-SQL代码,把查询student表和修改学号的权限授予用户u4。USEstuGRANTupdate(sno),selectONstudents.studentTOu4(6)同样在新的空白查询窗口中,输入以下Transact-SQL代码,把表sc的insert权限授予用户u5,并允许将此权限再