SQLServer的安全性管理.ppt_第1页
SQLServer的安全性管理.ppt_第2页
SQLServer的安全性管理.ppt_第3页
SQLServer的安全性管理.ppt_第4页
SQLServer的安全性管理.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第11章SQLServer的安全性管理,本章学习目标,了解SQLServer2005登录验证模式掌握管理两类SQLServer2005登录帐户的方法掌握管理SQLServer2005数据库用户的方法了解基于角色的权限管理掌握管理服务器角色的方法掌握管理数据库角色的方法掌握管理权限的方法,11.1SQLServer2005的安全机制,SQLServer2005数据库的安全性通过以下几个方面得以保证:网络系统的安全性:这可以通过在网络系统边界安装防火墙系统得以实施。服务器的安全性:即保证运行SQLServer2005的服务器本身及其操作系统的安全。SQLServer2005的登录安全性:即允许哪些用户登录SQLServer服务器。数据库的安全性:即规定用户登录SQLServer服务器以后可以使用哪些数据库。数据库对象的安全性:即规定用户打开某一数据库后,可以操作哪些数据库对象以及怎样操作。,11.1.1SQLServer2005登录身份验证模式,SQLServer2005登录身份验证用来确认该用户是否具有连接SQLServer的权限。任何用户在使用SQLServer数据库之前,必须通过系统的安全身份验证。SQLServer2005提供了两种确认用户的验证模式:即“Windows身份验证模式”和“SQLServer和Windows身份验证模式”。,11.1.1SQLServer2005登录身份验证模式,1Windows身份验证用户通过MicrosoftWindows用户帐户连接时,SQLServer使用Windows操作系统中的信息验证帐户名和密码。这是默认的身份验证模式。Windows身份验证通过强密码的复杂性验证提供密码策略强制,提供帐户锁定支持,并且支持密码过期。,11.1.1SQLServer2005登录身份验证模式,2SQLServer和Windows身份验证模式(又称为混合模式)允许用户使用Windows身份验证或SQLServer身份验证进行连接。使用SQLServer身份验证时,必须提供一个已存在的SQLServer登录帐户和密码。SQLServer密码可包含1到128个字符,包括字母、符号和数字的任意组合。,11.1.1SQLServer2005登录身份验证模式,当采用强密码时,密码长度必须多于8个字符。强密码不能使用禁止的条件或字词,包括:空条件或NULL条件、“Password”、“Admin”、“Administrator”、“sa”、“sysadmin”、当前计算机的名称、当前登录到计算机上的用户的名称。并且要满足下列四个条件中的三个:必须包含大写字母。必须包含小写字母。必须包含数字。必须包含非字母数字字符;例如,#、%或。,11.1.1SQLServer2005登录身份验证模式,如果必须选择“混合模式身份验证”并要求使用SQLServer登录,则应该为所有SQLServer帐户设置强密码。注意:设置强密码对于确保系统的安全至关重要。切勿设置空密码或弱密码。提供SQLServer身份验证只是为了向后兼容,应尽可能使用Windows身份验证。,11.1.1SQLServer2005登录身份验证模式,SQLServer2005安装成功后,默认的身份验证模式是“Windows身份验证模式”,利用SQLServer管理控制台可以重新设置身份验证模式。方法如下:打开SQLServer管理控制台,右击SQLServer服务器名称,在弹出的快捷菜单中选择“属性”选项。会打开“服务器属性”对话框。在窗口左端选择“安全性”选择页。,11.1.1SQLServer2005登录身份验证模式,根据需要单击“服务器身份验证”下面对应的“Windows身份验证模式”或“SQLServer和Windows身份验证模式”单选按钮,并单击“确定”按钮。打开SQLServer配置管理器,单击窗口左边的“SQLServer2005服务”,在窗口右边找到“SQLServer服务”,并重新启动它。,11.1.2SQLServer数据库的安全性,用户成功登录SQLServer服务器后,并不自动拥有对所有数据库的访问权限。用户必须在想要访问的数据库中也有一个与登录帐户相对应的数据库帐户。当需要访问某个数据库时,SQLServer的安全系统会根据这个数据库帐户的权限决定是否允许用户访问该数据库。,11.1.3SQLServer数据库对象的安全性,在创建一个数据库对象时,创建者将自动拥有对该数据库对象的所有权限,即可以完全控制该对象。当一个非数据库拥有者想要访问数据库中的对象时,必须事先由数据库拥有者赋予该用户对指定对象的操作权限。,11.2管理服务器的安全性,11.2.1SQLServer登录帐户,在SQLServer2005的SQLServer管理控制台的树形目录中展开服务器下的“安全性”,选择“登录名”,可以查看当前该服务器所有的登录帐户信息。SQLServer2005服务器在安装成功后,已经自动创建了一些登录帐户,如sa帐户是给SQLServer2005系统管理员使用的,它是一个特殊的帐户,该帐户拥有最高的管理权限,可以执行服务器范围内的所有操作。为了安全起见,sa帐户在默认情况下是禁用的。另外还有“BUILTINAdministrators”帐户,是为Windows系统管理员管理SQLServer2005服务器而提供的,它也可以执行服务器范围内的所有操作。,11.2.2添加登录帐户,1使用SQLServer管理控制台添加登录帐户(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)右击“安全性|登录名”,选择“新建登录名”,会打开“登录名-新建”对话框。(3)根据所要创建的登录帐户的类型选择相应的身份验证类型单选按钮。,11.2.2添加登录帐户,2使用Transact-SQL语句添加登录帐户可以使用CREATELOGIN语句添加登录帐户。CREATELOGINlogin_nameWITH|FROM:=WINDOWSWITH,.:=PASSWORD=passwordHASHEDMUST_CHANGE,.,11.2.2添加登录帐户,:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|CHECK_EXPIRATION=ON|OFF|CHECK_POLICY=ON|OFF:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language,11.2.2添加登录帐户,其中的参数说明如下:login_name:指定创建的登录名。WINDOWS:指定将登录名映射到Windows登录名。PASSWORD=password:仅适用于SQLServer登录名。指定正在创建的登录名的密码。HASHED:仅适用于SQLServer登录名。指定在PASSWORD参数后输入的密码已经过哈希运算。,11.2.2添加登录帐户,MUST_CHANGE:仅适用于SQLServer登录名。SQLServer将在首次使用新登录名时提示用户输入新密码。DEFAULT_DATABASE=database:指定将指派给登录名的默认数据库。如果未包括此选项,则默认数据库将设置为master。DEFAULT_LANGUAGE=language:指定将指派给登录名的默认语言。,11.2.2添加登录帐户,CHECK_EXPIRATION=ON|OFF:仅适用于SQLServer登录名。指定是否对此登录帐户强制实施密码过期策略。CHECK_POLICY=ON|OFF:仅适用于SQLServer登录名。指定应对此登录名强制实施运行SQLServer的计算机的Windows密码策略。,11.2.2添加登录帐户,注意:密码是区分大小写的。只有创建SQLServer登录名时,才支持对密码预先进行哈希运算。如果指定MUST_CHANGE,则CHECK_EXPIRATION和CHECK_POLICY必须设置为ON。否则,该语句将失败。不支持CHECK_POLICY=OFF和CHECK_EXPIRATION=ON的组合。,11.2.2添加登录帐户,如果CHECK_POLICY设置为OFF,将对lockout_time进行重置,并将CHECK_EXPIRATION设置为OFF。只有在WindowsServer2003及更高版本上才会强制执行CHECK_EXPIRATION和CHECK_POLICY。例11-2-1:创建一个SQLServer登录帐户USER1,密码为Abc123#$。,11.2.3修改登录帐户属性,使用SQLServer管理控制台修改登录帐户属性,只需双击要修改属性的登录帐户,并在登录属性对话框中进行修改即可。注意:对于SQLServer帐户,可以修改其密码。对于Windows帐户,只能使用Windows的“计算机管理器”或“域用户管理器”修改帐户密码。,11.2.4拒绝或禁用登录帐户,有时可能需要暂时拒绝或禁用一个登录帐户连接到SQLServer服务器,过一段时间后再恢复。使用SQLServer管理控制台拒绝登录帐户的步骤如下:(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)选择“安全性|登录名”,双击要拒绝访问的登录帐户,打开登录属性对话框。(3)选择“状态”选择页,并选中“拒绝”或“禁用”单选按钮。(4)单击“确定”按钮。,11.2.5删除登录帐户,1使用SQLServer管理控制台删除登录帐户(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)选择“安全性|登录名”,在右侧窗口的登录帐户列表中右击要删除的帐户,从弹出的快捷菜单中选择“删除”选项。,11.2.5删除登录帐户,2使用Transact-SQL语句删除登录帐户可以使用DROPLOGIN删除登录帐户,语法形式如下:DROPLOGINlogin_name其中login_name是要删除的登录名。例11-2-2:删除SQLServer帐户USER1。,11.2.6服务器角色,SQLServer管理者可以将某一组用户设置为某一角色,这样只要对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。SQLServer提供了通常管理工作的预定义服务器角色和数据库角色。用户还可以创建自己的数据库角色。,11.2.6服务器角色,服务器角色是指根据SQLServer的管理任务,以及这些任务相对的重要性等级来把具有SQLServer管理职能的用户划分为不同的用户组,每一组所具有的管理SQLServer的权限都是SQLServer内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。,11.2.6服务器角色,SQLServer提供的固定服务器角色,其具体含义如下:系统管理员(sysadmin):可以在数据库引擎中执行任何活动。默认情况下,WindowsBUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。服务器管理员(Serveradmin):可以更改服务器范围的配置选项和关闭服务器。磁盘管理员(diskadmin):管理磁盘文件。进程管理员(processadmin):可以终止在数据库引擎实例中运行的进程。,11.2.6服务器角色,安全管理员(securityadmin):可以管理登录名及其属性。安装管理员(setupadmin):可以添加和删除链接服务器,并可以执行某些系统存储过程。数据库创建者(dbcreator):可以创建、更改、删除和还原任何数据库。大容量插入操作管理者(bulkadmin):可以执行大容量插入操作。,11.2.6服务器角色,使用SQLServer管理控制台更改服务器角色成员的步骤如下:(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)选择“安全性|服务器角色”,双击右侧窗口的服务器角色列表中要更改的服务器角色,将弹出“服务器角色属性”对话框,其中显示出当前服务器角色成员列表。,11.3管理数据库的用户,一台服务器除了有一套服务器登录帐户列表外,每个数据库中也都有一套相互独立的数据库用户列表。每个数据库用户都和服务器登录帐户之间存在着一种映射关系。系统管理员可以将一个服务器登录帐户映射到用户需要访问的每一个数据库中的一个用户帐户和角色上。一个登录帐户在不同的数据库中可以映射成不同的用户,从而拥有不同的权限。,11.3管理数据库的用户,在SQLServer中,每个数据库一般都有两个默认的用户:dbo和guest。dbo代表数据库的拥有者。例如,sysadmin服务器角色的成员被自动映射成dbo。Guest用户主要是让那些没有属于自己的用户帐户的SQLServer登录者作为其默认的用户,从而使该登录者能够访问具有guest用户的数据库。不能删除guest用户,但可通过撤消该用户的CONNECT权限将其禁用。,11.3管理数据库的用户,在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器,在“数据库”目录树中,选择某个数据库名称下面包含的“安全性|用户”,可以在右侧窗口中看到该数据库的所有用户。,11.3.1添加数据库用户,1使用SQLServer管理控制台添加数据库用户(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)展开“数据库”目录树,再展开待添加用户的数据库,右击“安全性|用户”,在弹出的快捷菜单中选择“新建用户”选项。将弹出“数据库用户-新建”对话框。,11.3.1添加数据库用户,2使用Transact-SQL语句添加数据库用户可以使用CREATEUSER添加数据库用户,其基本语法形式如下:CREATEUSERuser_nameFOR|FROMLOGINlogin_name|WITHOUTLOGINWITHDEFAULT_SCHEMA=schema_name,11.3.1添加数据库用户,其中的参数说明如下:user_name:指定在此数据库中用于识别该用户的名称。user_name的长度最多是128个字符。LOGINlogin_name:指定要创建数据库用户的SQLServer登录名。login_name必须是服务器中有效的登录名。WITHDEFAULT_SCHEMA=schema_name:指定服务器为此数据库用户解析对象名时将搜索的第一个架构。WITHOUTLOGIN:指定不应将用户映射到现有登录名。,11.3.1添加数据库用户,注意:如果已忽略FORLOGIN,则新的数据库用户将被映射到同名的SQLServer登录名。如果未定义DEFAULT_SCHEMA,则数据库用户将使用dbo作为默认架构。如果用户是sysadmin固定服务器角色的成员,则忽略DEFAULT_SCHEMA的值。映射到SQLServer登录名不能包含反斜杠字符()。例11-3-1:在STUDENT数据库中为SQLServer用户USER1添加数据库用户,并取名为USER1,默认架构为STU。,11.3.2删除数据库用户,删除数据库用户实际上就是删除一个登录帐户到一个数据库中的映射。在SQLServer管理控制台中删除一个数据库用户可以用鼠标右击欲删除的用户,从弹出的快捷菜单中选择“删除”选项,在随后弹出的“删除对象”对话框中单击“确定”按钮即可将该用户从数据库中删除。,11.3.2删除数据库用户,利用Transact-SQL语句同样可以删除数据库用户,其语法形式如下:DROPUSERuser_name其中的参数user_name指定在此数据库中用于识别该用户的名称。例11-3-2:从STUDENT数据库中删除数据库用户USER1。,11.3.3数据库角色,数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以给一个用户授予属于同一数据库的多个角色。SQLServer在安装成功后,提供了十种固定数据库角色。固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。,11.3.3数据库角色,SQLServer提供的固定数据库角色的具体含义如下:public:维护全部默认权限。db_accessadmin:可以为登录帐户添加或删除访问权限。db_backupoperator:可以备份该数据库。db_datareader:可以对数据库中的任何表或视图运行SELECT语句。db_datawriter:可以在所有用户表中添加、删除或更改数据。,11.3.3数据库角色,db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。db_denydatareader:不能读取数据库内用户表中的任何数据。db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。db_owner:可以执行数据库的所有配置和维护活动。db_securityadmin:可以修改角色成员身份和管理权限。,11.3.3数据库角色,在固定的数据库角色中,public是一个特殊的数据库角色,每个数据库用户都属于public数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的public角色的权限。,11.3.3数据库角色,在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器,展开“数据库”目录树,再展开某个具体的数据库,选择“安全性|角色|数据库角色”,在右侧窗口中会看到数据库中已存在的角色。在未创建新角色之前,数据库中只有固定数据库角色。,11.4权限管理,权限用来指定授权用户可以使用的数据库对象以及对这些数据库对象可以执行的操作。用户在登录到SQLServer之后,根据其用户帐户所属的Windows组或角色,决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中,用户的权限独立于用户帐户和用户在数据库中的角色,每个数据库都有自己独立的权限系统。权限的管理主要是完成对权限的授权、拒绝和回收。,11.4权限管理,管理权限可以通过以下的方式来实现:从数据库的角度来管理。从用户或角色的角度来管理。从数据库对象的角度来管理。在SQLServer中,可以通过SQLServer管理控制台或Transact-SQL语句管理权限。,11.4.1通过SQLServer管理控制台管理权限,1管理数据库的权限(1)在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。(2)展开“数据库”,右击某个数据库的名称,在弹出的快捷菜单中选择“属性”选项,会弹出数据库属性对话框。单击“权限”选择页,打开权限窗口。在权限选择页中,可以单击“添加”按钮,添加用户或角色。,11.4.1通过SQLServer管理控制台管理权限,说明:此页仅显示显式授予或拒绝的权限。通过组或角色中的成员身份,可能隐式拥有对这些安全对象或其他安全对象的其他权限。这些网格中没有列出通过组或角色中的成员身份获取的权限。所有显式和隐式权限的总和构成其有效权限。因此,如果想了解某个用户具有的所有权限,可以查看“有效权限”对话框。,11.4.1通过SQLServer管理控制台管理权限,2管理用户的权限管理用户的权限就是设置一个用户能对哪些对象执行哪些操作。例11-4-1:为STUDENT数据库新创建一个数据库用户USER2,并为其赋予查询T_COURSE表的权限。,11.4.1通过SQLServer管理控制台管理权限,3管理数据库对象的权限也可以从数据库对象的角度完成相同的工作,即设置一个数据库对象能被哪些用户/角色执行哪些操作。在SQLServer管理控制台中,展开SQLServer服务器组中相应服务器。展开“数据库”,再展开指定的数据库,选择“表”,在右边窗口的数据表列表中右击表名称,在弹出的快捷菜单中选择“属性”选项,打开表属性对话框,选择“权限”选择页。可以单击“添加”按钮添加用户或角色,也可以撤消已授的权限。,11.4.2使用Transact-SQL语句管理权限,在Transact-SQL语言中,使用GRANT、DENY和REVOKE三种命令来管理权限。GRANT命令用于把指定的权限授予某一用户。GRANTALLPRIVILEGES|

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论