您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > XXXX(第2版)第15章_SQL_Server_XXXX数据库的安全性
第15章SQLServer2008数据库的安全性和完整性管理15.1数据库安全性概述SQLServer的安全性管理是建立在认证(authentication)和访问许可(permission)这两种机制上的。认证是指确定登录SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQLServer的权限。但是,通过认证并不代表能够访问SQLServer中的数据。用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作。用户访问数据库权限的设置是通过用户账号来实现的。角色简化了安全性管理。15.1数据库安全性概述所以在SQLServer的安全模型中包括以下几部分:SQLServer身份验证;登录账户;数据库用户;角色;权限。15.1数据库安全性概述15.1.1身份验证简介SQLServer支持两种模式的身份验证:Windows验证模式、SQLServer和Windows混合验证模式。Windows验证模式比起SQLServer验证模式来有许多优点。Windows身份验证比SQLServer身份验证更加安全;使用Windows身份验证的登录账户更易于管理;用户只需登录Windows之后就可以使用SQLServer,只需要登录一次。在混合验证模式下,Windows验证和SQLServer验证这两种验证模式都是可用的。对于SQLServer验证模式,用户在连接SQLServer时必须提供登录名和登录密码。15.1数据库安全性概述15.1.2验证模式的修改当安装SQLServer时,可以选择SQLServer的身份验证类型。安装完成之后也可以修改认证模式。修改步骤如下。(1)打开SQLServerManagementStudio。(2)在要更改的服务器上鼠标右键单击,在快捷菜单中选择属性,弹出服务器属性对话框。(3)单击左侧列表中的“安全性”项,出现“安全性”页面,如图15.1所示。在图中修改身份验证。15.1数据库安全性概述图15.1身份验证15.2管理服务器登录1.创建Windows登录账户(1)在“对象资源管理器”中,单击树型目录中的“安全性”节点,如图15.2所示。15.2管理服务器登录(2)鼠标右键单击“安全性”的子节点“登录名”,在快捷菜单中选择“新建登录名…”,出现“登录名-新建”对话框,如图15.3所示。15.2管理服务器登录(3)在“登录名”编辑框中输入登录名称,输入的登录名必须是已存在的Windows登录用户。可以单击“搜索…”按钮,出现登录“选择用户和组”对话框,如图15.4所示。在对象名称编辑框中输入用户或组的名称,单击“检查名称”按钮检查对象是否存在。输入完成,单击“确定”按钮关闭选择用户或组对话框。15.2管理服务器登录(4)确认选择的是“Windows身份验证”。指定账户登录的默认数据库。(5)单击窗口左侧列表中的“服务器角色”节点,指定账户所属服务器角色。(6)单击窗口左侧列表中的“用户映射”节点,右侧出现用户映射页面。可以查看或修改SQL登录账户到数据库用户的映射。选择此登录账户可以访问的数据库,对具体的数据库,指定要映射到登录名的数据库用户(默认情况下,数据库用户名与登录名相同)。指定用户的默认架构,首次创建用户时,其默认架构是dbo。(7)设置完成单击“确定”按钮提交更改。15.2管理服务器登录2.创建SQLServer登录账户一个SQLServer登录账户名是一个新的登录账户,该账户和Windows操作系统的登录账户没有关系。(1)打开新建登录名对话框,选择“SQLServer身份验证”,输入登录名,密码和确认密码,并选择缺省数据库,如图15.5所示。15.2管理服务器登录(2)设置服务器角色和用户映射,请参考“创建Windows登录账户”的步骤5和步骤6。15.2管理服务器登录3.登录账户管理创建登录账户之后,在图15.2所示服务器安全性展开登录名节点上,鼠标右键单击相应的账户,出现快捷菜单,如图15.6所示,如果要修改该登录账户,选择属性菜单;如要删除该登录账户,则选择删除菜单。15.2管理服务器登录15.2.2使用Transact-SQL管理登录账户在Transact-SQL中,管理登录账户的SQL语句有:CREATELOGIN、DROPLOGIN、ALTERLOGIN。下面简要说明如何使用T-SQL来创建和维护登录账户。1.新建登录账户CREATELOGIN其语法格式为:CREATELOGINlogin_name{WITHoption_list1|FROMsources}15.2管理服务器登录【例15.1】创建带密码的登录名“test”。MUST_CHANGE选项要求用户首次连接服务器时更改此密码。CREATELOGINtestWITHPASSWORD='26aK'MUST_CHANGE【例15.2】从Windows域账户创建[Development\iewangjf]登录名。CREATELOGIN[Development\iewangjf]FROMWindows15.2管理服务器登录2.删除登录账户DROPLOGIN其语法格式为:DROPLOGINlogin_name【例15.3】删除登录账户“test”。DROPLOGINtest3.更改登录账户ALTERLOGIN其语法格式为:ALTERLOGINlogin_name{status_option|WITHset_option[,...]}status_option::=ENABLE|DISABLE15.2管理服务器登录【例15.4】启用禁用的登录。ALTERLOGINtestENABLE;【例15.5】将“test”登录密码更改为123。ALTERLOGINtestWITHPASSWORD='123【例15.6】将登录名“test”更改为“iewangjf”。ALTERLOGINtestWITHNAME=iewangjf15.3角色和用户管理15.3.1角色管理简介角色等价于Windows的工作组,将登录名或用户赋予一个角色,角色具有权限,登录名或用户作为角色成员,从而继承了所属角色的权限。如图15.7所示。登录名或用户角色权限15.3角色和用户管理只需给角色指定权限,然后将登录名或用户指定为某个角色,而不必给每个登录名或用户指定权限,这样给实际工作带来了很大的便利。在SQLServer中角色分为服务器角色和数据库角色。而数据库角色又分为固有数据库角色、用户自定义数据库角色和应用程序角色。1.服务器角色服务器角色内建于SQLServer,其权限无法更改,每一个角色拥有一定级别的数据库管理职能,如图15.8所示。15.3角色和用户管理服务器角色包括以下几种。bulkadmin:可以运行BULKINSERT语句。dbcreator:可以创建、更改、删除和还原任何数据库。diskadmin:管理磁盘文件。processadmin:可以终止SQLServer实例中运行的进程。securityadmin:管理登录名及其属性。这类角色可以GRANT、DENY和REVOKE服务器级和数据库级权限,可以重置SQLServer登录名的密码。serveradmin:可以更改服务器范围的配置选项和关闭服务器。setupadmin:添加和删除链接服务器,并且也可以执行某些系统存储过程。sysadmin:可以在服务器中执行任何活动。15.3角色和用户管理15.3角色和用户管理2.固有数据库角色固有数据库角色是指这些角色的数据库权限已被SQLServer预定义,不能对其权限进行任何修改,并且这些角色存在于每个数据库中,如图15.9所示。15.3角色和用户管理固有数据库角色包括以下几种。db_accessadmin:可以为Windows登录账户、Windows组和SQLServer登录账户添加或删除访问权限。db_backupoperator:可以备份该数据库。db_datareader:可以读取所有用户表中的所有数据。db_datawriter:可以在所有用户表中添加、删除或更改数据。db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。db_denydatareader:不能读取数据库内用户表中的任何数据。15.3角色和用户管理db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。db_owner:可以执行数据库的所有配置和维护活动。db_securityadmin:可以修改角色成员身份和管理权限。public:当添加一个数据库用户时,它自动成为该角色成员,该角色不能删除,指定给该角色的权限自动给予所有数据库用户。db_owner和db_securityadmin角色的成员可以管理固有数据库角色成员身份;但是,只有db_owner数据库的成员可以向db_owner固有数据库角色中添加成员。15.3角色和用户管理3.用户自定义数据库角色当打算为某些数据库用户设置相同的权限,但是这些权限不等同于预定义的数据库角色所具有的权限时,就可以定义新的数据库角色来满足这一要求,从而使这些用户能够在数据库中实现某些特定功能。用户自定义数据库角色包含以下两种类型。标准角色:为完成某项任务而指定的具有某些权限和数据库用户的角色。应用角色:与标准角色不同的是,应用角色默认情况下不包含任何成员,而且是非活动的。将权限赋予应用角色,然后将逻辑加入到某一特定的应用程序中,从而激活应用角色而实现了对应用程序存取数据的可控性。15.3角色和用户管理15.3.2角色的管理1.使用ManagementStudio管理角色(1)为服务器角色添加登录账户。执行如下步骤。①在图15.8中展开服务器角色节点。在需要添加用户的角色上单击鼠标右键,选择“属性”菜单,弹出“属性”对话框。②单击“添加”按钮,则弹出“选择登录名”对话框,如图15.10所示。③单击“浏览”按钮,则弹出“查找对象”对话框,如图15.11所示。④选中需要添加的对象。⑤单击每个对话框中的“确定”按钮关闭对话框。15.3角色和用户管理图15.10“选择登录名”对话框15.3角色和用户管理图15.11“查找对象”对话框15.3角色和用户管理(2)为固有数据库角色添加成员。鼠标右键单击想要添加成员的固有服务器角色节点,其余步骤与(1)类似。(3)创建用户自定义角色。执行如下步骤。①展开要创建数据库节点,直到看到“数据库角色”节点,鼠标右键单击“数据库角色”,选择“新建数据库角色”,出现“新建数据库角色”对话框,如图15.12所示。15.3角色和用户管理15.3角色和用户管理②在角色名称编辑框中填入角色名称,在所有者编辑框中填入该角色的所有者。③指定角色拥有的框架名称。单击“添加”按钮添加角色成员,则弹出“选择数据库用户或角色”对话框,如图15.13所示。15.3角色和用户管理④输入用户(如果需要,单击“浏览”按钮),单击“确定”按钮添加用户到角色。⑤单击图15.12左侧选择页中的“安全对象”,则右侧“安全对象”页面,如图15.14所示。在此可以设置角色访问数据库的资源。15.3角色和用户管理15.3角色和用户管理⑥单击安全对象中“搜索”按钮,弹出“添加对象”对话框,如图15.15所示。⑦选择对象类型,如选择“特定类型的所有对象”,则弹出“选择对象类型”对话框,如图15.16所示。15.3角色和用户管理⑧在如图15.16所示的对话框中选择需要设置权限的对象类型,如选择表,单击“确定”按钮关闭,则显示所有表的权限设置,如图15.17所示。可以设置具体的表的权限。针对具体表,还可以设计对应的列权限。15.3角色和用户管
本文标题:XXXX(第2版)第15章_SQL_Server_XXXX数据库的安全性
链接地址:https://www.777doc.com/doc-1250611 .html