数据库的安全性.ppt
《数据库的安全性.ppt》由会员分享,可在线阅读,更多相关《数据库的安全性.ppt(123页珍藏版)》请在三一办公上搜索。
1、第12章 数据库的安全性,12.1 SQL Server 安全性概述12.2 登录帐户管理12.3 服务器角色管理12.4 数据库角色管理12.5 数据库帐户管理12.6 权限管理习题,12.1 SQL Server 安全性概述,基本概念数据库安全指保护数据库以防止不合法的使用所造成的数据泄密、更改、或破坏。三种安全模型:自主访问控制(DAC)、强制访问控制(MAC)、基于角色的访问控制(RBAC)模型。,12.1 SQL Server 安全性概述,12.1.1 数据库的安全性考虑1从使用方式的角度来看SQL Server 2005的安全性分为两类:数据库安全性和应用程序安全性。数据库安全性以
2、信息资源和信息资源的用户为主要管理对象。一个用户只要具有对某个对象的访问权限,则无论使用什么工具,都可以对该对象进行访问。,应用程序安全性则可以指定一个数据库或其中的某个对象只能由某些特殊的应用程序访问。2从登录的角度来看在SQL Server系统中,安全性采用的是两级权限管理机制。第一级是服务器级的“连接权”。第二级是数据库级的“访问权”。由于绝大多数数据库管理系统都还是运行在某一特定操作系统平台下的应用程序,SQL Server也不例外,而数据库中又包含有很多对象,因而实际上,SQL Server的安全性机制可以划分为4个等级:,(1)客户机操作系统的安全性;(2)SQL Server的登
3、录安全性;(3)数据库的使用安全性;(4)数据库对象的使用安全性。每个安全等级就好像一道门,如果门没有上锁,或者用户拥有开门的钥匙,则用户可以通过这道门达到下一个安全等级。如果通过了所有的门,则用户就可以实现对数据的访问了。,12.1.2 帐户验证 既然SQL Server的安全性机制可以划分为四个等级,因而使用数据库中数据的帐户也应从四个方面进行验证。1操作系统级别的验证在用户使用客户计算机通过网络实现对SQL Server服务器的访问时,用户首先要获得客户计算机操作系统的使用权。一般来说,在能够实现网络互联的前提下,用户没有必要直接在运行SQL Server服务器的主机上进行登录,除非SQ
4、L Server服务器就运行在本地计算机上。,保证操作系统安全性是操作系统管理员或者网络管理员的任务。由于SQL Server采用了与Windows集成的网络安全机制,因此使得操作系统的安全性也显得尤为重要,同时也加大了管理数据库系统安全性和灵活性的难度。2服务器级别的验证SQL Server的服务器级安全性建立在控制服务器登录帐户和密码的基础上。SQL Server采用了标准SQL Server登录和集成Windows登录两种方式。无论是使用哪种登录,用户在登录时提供的登录帐户和密码决定了用户能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server进程时可以
5、拥有的权利。管理和设计合理的登录帐户是SQL Server 系统管理员的重要任务。,3数据库级别的验证在用户通过SQL Server服务器的安全性检验以后,将直接面对不同的数据库入口。这是用户将接受的第三次安全性检验。默认情况下,数据库的所有者可以访问该数据库的对象,还可以分配访问权给别的用户,以便让别的用户也拥有针对该数据库的访问权利。4数据库对象级别的验证数据库对象的安全性是核查用户权限的最后一个安全等级。在创建数据库对象的时候,SQL Server将自动把该数据库对象的拥有权赋予该对象的创建者。对象的所有者可以实现该对象的完全控制。,默认情况下,只有数据库的所有者可以在该数据库下进行操作
6、。当一个非数据库所有者想访问数据库里的对象时,必须事先由数据库的所有者赋予该用户对指定对象的执行特定操作的权限。例如,一个用户想访问“学生图书借阅管理”数据库里“图书信息”表中的信息,则他必须在首先成为数据库合法用户的前提下,获得由“学生图书借阅管理”数据库所有者分配的针对“图书信息”表的访问权限。,12.2 登录帐户管理,12.2.1 标准的SQL帐户管理1帐户的建立如果要采用SQL Server提供的标准登录模式实现SQL Server服务器的登录连接,用户必须拥有合法的帐户和密码。用户建立标准登录帐户的方式有三种:使用查询分析器,通过系统提供的存储过程;通过SQL Server企业管理器
7、;使用SQL Server提供的创建登录向导。,1)使用系统提供的存储过程sp_addlogin建立标准登录帐户(1)基本语法如下:sp_addloginloginame=login,passwd=password,=defabdatabase,deflanguage=language(2)参数解释如下:loginame 登录帐户名。在同一个服务器上用户的帐户名必须惟一。passwd 帐户的密码。,defab 新建立帐户的默认数据库。如果不设置此参数,则默认值为master数据库。deflanguage 默认的语言。注意:SQL Server的登录帐户名必须符合SQL Server的命名规则。
8、下面的例子创建了一个登录帐户。EXEC sp_addlogin ssq,518405,masterGO这个例子创建了一个名叫“ssq”,密码是“518405”,默认数据库为“master”的帐户。注意:对于一个没有授予任何权限的新建帐户,默认数据库只能选择“master”。,2)通过SQL Server企业管理器建立标准登录帐户用企业管理器创建标准登录帐户的步骤如下:(1)展开要创建登录帐户的“服务器”节点。(2)选中树型结构上的“安全性”节点,展开该节点,如图8-1所示。(3)在“登录”节点上右击,弹出的快捷菜单如图8-2所示。,图8-1 树型结构上的“安全性”节点,图8-2 快捷菜单,(4
9、)在图8-2中单击“新建登录”命令,出现如图8-3所示的界面。图8-3 新建登录窗口,(5)在界面上输入有关的登录帐户的相关信息,如帐户名、默认的数据库、默认的语言等。在身份验证中,选中SQL Server身份验证。图8-4 创建登录帐户,(6)打开“服务器角色”选项卡,为新建的帐户指定服务器级的权限,如图8-5所示。图8-5 分配固定服务器角色,(7)打开“数据库访问”选项卡为新建的帐户指定数据库访问权限,如图8-6所示。用户可以在这个界面上决定允许该登录帐户访问的数据库,以及分配给登录帐户的数据库角色。图8-6 分配帐户可以访问的数据库,(8)最后,单击“确定”命令按钮,完成新帐户的建立。
10、3)使用SQL Server提供的创建登录向导建立标准登录帐户使用向导建立标准登录帐户的步骤如下:(1)从企业管理器的控制台根目录中的“工具”菜单中选择“向导”命令,如图8-7所示。,图8-7 选择“向导”选项,(2)在打开的对话框中,展开“数据库”节点,选中“创建登录向导”选项,如图8-8所示。图8-8 选择向导,(3)单击“确定”命令按钮,出现欢迎使用创建登录向导界面,其中简介了它所能替您完成的任务,请直接用鼠标左键单击“下一步”按钮,出现如图8-9所示的对话框。图8-9 选择身份验证模式对话框,(4)在身份验证模式对话框中,选中SQL Server身份验证模式,单击“下一步”按钮,出现如
11、图8-10所示的对话框。图8-10 SQL Server身份验证模式,(5)在图8-10所示的对话框中,输入登录帐户“陈一铭”和密码“518405”,单击“下一步”按钮,出现如图8-11所示的对话框。图8-11 选择安全性角色,(6)在图8-11所示的对话框中,为新建登录选择服务器角色。单击“下一步”按钮,出现如图8-12所示的对话框。图8-12 选择可以访问的数据库,(7)在图8-12所示的对话框中,为新建登录选择允许访问的数据库。单击“下一步”按钮,出现如图8-13所示的对话框。图8-13 完成创建向导,(8)在图8-13所示的对话框中,列出了您所做的所有设置情况。如果满意,单击完成,系统
12、将按照您的设置建立一个新的帐户。2修改和删除帐户建立好的帐户信息还可以进行修改和删除。1)使用系统存储过程sp_defaultdb修改登录帐户的默认数据库(1)基本语法如下:sp_defaultdb loginame=login,defdb=database,(2)参数解释如下:loginame=login 登录名。defdb=database 新的默认数据库的名称。例如:EXEC sp_defaultdb ssq,pubs2)使用系统存储过程sp_defaultlanguage修改登录帐户的默认语言(1)基本语法如下:sp_defaultlanguage loginame=login,lan
13、guage=language,(2)参数解释如下:loginame=login 登录名。language=language 登录的默认语言。例如:EXEC sp_defaultlanguage,ssq,english3)使用系统存储过程sp_password修改登录帐户的密码(1)基本语法如下:sp_password old=old_password,new=new_password,loginame=login,(2)参数解释如下:old=old_password 旧密码。其默认值为 NULL。new=new_password 新密码。loginame=login 受密码更改影响的登录名。例
14、如:EXEC sp_password 518405,208107,ssq4)使用系统存储过程sp_droplogin删除SQL Server标准登录帐户(1)基本语法如下:sp_droplogin loginame=login(2)参数解释如下:loginame=login 将被删除的登录。,例如:EXEC sp_droplogin,ssq使用企业管理器也可以实现对标准帐户的修改和删除。由于是简单的可视化操作,具体操作方法在此就不介绍了。注意:(1)在SQL Server中删除帐户信息时,有如下限制:已经映射到数据库用户的帐户不允许被删除;系统帐户sa不能被删除,正在使用的帐户不能被删除;拥有
15、数据库的帐户不能被删除。,(2)在进行修改和删除操作时用到的所有存储过程和使用企业管理器进行的有关帐户、密码、角色、权限的操作,都只有被赋予sysadmin或securityadmin固定服务器角色的用户才可以使用。12.2.2 与Windows集成的帐户管理1帐户的建立所谓与Windows集成的登录帐户,实际上是将Windows的用户和工作组映射为SQL Server的登录帐户。对于已经映射的Windows帐户,SQL Server可以对这些帐户采取信任登录的方式。如果这些Windows的用户或工作组成员能够成功地登录Windows,则SQL Server就承认他们是合法的用户,从而允许他们
16、连接上服务器。与Windows集成的登录模式实际上是让Windows代替SQL Server执行登录审查任务。,用户建立与Windows集成的登录帐户方式有三种:使用查询分析器,通过系统提供的存储过程;通过SQL Server企业管理器;使用SQL Server提供的创建登录向导。因为后两种与建立标准登录模式帐户相似,所以在这里只介绍第一种方式。使用系统存储过程sp_grantlogin来使Windows的用户或工作组映射成为SQL Server的登录帐户。(1)基本语法如下:sp_grantlogin loginame=login(2)参数解释如下:loginame=login 要添加的 W
17、indows用户或组的名称。,例如:sp_grantlogin lgdjsjx这个例子将Windows服务器上lgd域下的工作组jsjx映射成为了SQL Server的登录帐户。注意:映射工作组或用户的前提条件是该工作组或用户必须存在于Windows服务器上。当用户将工作组设置为SQL Server的帐户后,所有工作组的成员都可以使用这个帐户实现针对SQL Server的连接。所有工作组的成员都将享有该帐户的所有权限。在给出工作组或用户名时,必须指定用户或工作组所在的域,并使用定界符将域和用户括起来。,2删除Windows帐户 使用系统存储过程sp_revokelogin可以从SQL Serv
18、er中删除用sp_grantlogin创建的Windows用户或组的登录项。(1)基本语法如下:sp_revokelogin loginame=login(2)参数解释如下:loginame=login Windows 用户或组的名称。注意:只有sysadmin或securityadmin固定服务器角色的成员才能执行 sp_revokelogin。删除SQL Server标准用户帐户和删除Windows帐户应使用不同的系统存储过程。,例如:EXEC sp_revokelogin lgdssq 使用企业管理器也可以实现对Windows帐户的删除。由于是简单的可视化操作,具体操作方法在此就不介绍了
19、。3拒绝登录帐户使用系统存储过程sp_denylogin可以设置不允许Windows的工作组或用户连接SQL Server服务器。(1)基本语法如下:sp_denylogin loginame=login,(2)参数解释如下:loginame=login Windows用户或组的名称。例如:EXEC sp_denylogin lgdjsjx注意:只能拒绝Windows帐户登录,而不能拒绝SQL Server的标准帐户登录。如果一个Windows的用户名叫lgdssq,同时也是lgdjsjx的成员;如果使用了EXEC sp_revokelogin lgdssq,但lgdjsjx与SQL Serv
20、er帐户的映射关系依然存在而且可以连接,则lgdssq依然可以连接上SQL Server服务器。,然而,如果使用了EXEC sp_denylogin lgdssq,虽然lgdjsjx与SQL Server帐户的映射关系依然存在而且可以连接,但是lgdssq用户将无法再连接上SQL Server服务器。使用企业管理器也可以拒绝已授权Windows帐户的访问。由于是简单的可视化操作,具体操作方法在此就不介绍了。,12.3 服务器角色管理,12.3.1 固定服务器角色1固定服务器角色服务器角色是一些系统定义好操作权限的用户组,其中的成员是登录帐户。服务器角色不能增加或删除,只能对其中的成员进行修改。
21、服务器角色是SQL Server在安装时就创建好的用于分配服务器级管理权限的实体。,常用的固定服务器角色有:sysadmin、serveradmin、securityadmin、dbcreator、diskadmin、processadmin、setupadmin和bulkadmin。2浏览服务器角色有两种方法可以浏览服务器角色:1)使用系统存储过程sp_helpsrvrole浏览服务器角色(1)基本语法如下:sp_helpsrvrole srvrolename=role,(2)参数解释如下:srvrolename=role 固定服务器角色的名称。例如:EXEC sp_helpsrvrole2
22、)使用企业管理器浏览服务器角色展开企业管理器“服务器名/安全性/服务器角色”也可以看到所有的服务器角色,以及它们的描述,如图8-14所示。,图8-14 服务器角色列表,12.3.2 管理服务器角色成员一个登录帐户可以不属于任何角色,也可以同时属于多个角色。将一个登录帐户加入一个角色,可以令使用该帐户登录的用户自动地具有角色预定义的权限。Windows系统管理员组(即BUILTINadministrators)自动属于sysadmin角色。更改一个角色的成员可以使用系统存储过程或使用企业管理器。1使用系统存储过程更改服务器角色成员(1)将一个帐户加入一个服务器角色,可使用系统存储过程sp_add
23、srvrolemember。,系统存储过程sp_addsrvrolemember的功能是将某固定服务器角色分配给某指定的登录帐户,这时该用户被授予服务器角色所拥有的权力。基本语法如下:sp_addsrvrolemember loginame=login rolename=role 参数解释如下:loginame=login 添加到固定服务器角色的登录帐户名称。rolename=role 要将登录帐户添加到的固定服务器角色的名称。,例如:EXEC sp_addsrvrolemember lgdjsjx,sysadmin这个例子将固定服务器角色sysadmin分配给了登录帐户lgdjsjx,从此l
24、gdjsjx就拥有了角色sysadmin所拥有的所有权限。(2)将某个帐户从服务器角色中删除,可使用系统存储过程sp_dropsrvrolemember。系统存储过程sp_dropsrvrolemember的功能是收回分配给某登录帐户的指定固定服务器角色。基本语法如下:sp_dropsrvrolemember loginame=login,rolename=role,参数解释如下:loginame=login 将要从固定服务器角色删除的登录的名称。rolename=role 服务器角色的名称。例如:EXEC sp_dropsrvrolemember lgdjsjx,sysadmin这个例子回收
25、了分配给登录帐户lgdjsjx的固定服务器角色sysadmin。,2使用企业管理器更改服务器角色成员(1)从角色管理的角度更改服务器角色的成员需要以下步骤:在企业管理器中展开服务器组,再展开服务器:展开“安全性”节点,选中“服务器角色”目录。右边的窗口中列出了服务器中的所有角色,如图8-14所示。在列表中双击要修改成员的角色(比如,sysadmin),打开如图8-15所示的角色属性对话框。,图8-15 角色属性对话框,角色属性对话框中列出了角色现在包括的成员。sysadmin当前的成员只有“sa”。单击图8-15中的“添加”按钮,可以打开选择成员的对话框,从中选择要增加到角色中的服务器登录帐户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全性
链接地址:https://www.31ppt.com/p-5270388.html