sql server2012数据库管理教程课件-第14章_第1页
sql server2012数据库管理教程课件-第14章_第2页
sql server2012数据库管理教程课件-第14章_第3页
sql server2012数据库管理教程课件-第14章_第4页
sql server2012数据库管理教程课件-第14章_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

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

文档简介

SQLServer2012数据库管理教程第14章第14章数据库安全管理SQLServer2012系统安全机制身份验证模式登录管理权限管理角色管理架构14.1SQLServer2012系统安全机制安全性有两个作用:一是防止错误的数据操作,二是禁止恶意用户的攻击。SQLServer2012中广泛使用安全主体和安全对象来管理安全。一个安全主体是一个已授权的标识,可为其授予访问数据库系统中的对象的权限。SQLServer区别单个主体(如登录名)和集合主体(包括Windows组、数据库角色和应用程序角色,它们能包括其他安全主体)。安全主体在三个级别上进行管理:Windows、SQLServer和数据库。安全主体的级别决定了安全主体的影响范围。通常,Windows和SQLServer级别的安全主体具有实例级的范围,而数据库级别的安全主体的影响范围是特定的数据库。下表列出了每一级别的主体。SQLServer2012授予系统控制对某类对象的访问,这类对象称为安全对象。SQLServer中存在三种安全对象范围:服务器、数据库、架构。下表列出了每一安全对象范围所包含的安全对象。14.2身份验证模式1.Windows身份验证当数据库仅在内部访问时,使用Windows身份验证模式可以获得最佳工作效率。在使用Windows身份验证模式时,可以使用Windows域中有效的用户和组账户来进行身份验证。在这种模式下,域用户不需要独立的SQLServer用户账户和密码就可以访问数据库。这对于普通用户是有益的,因为这意味着域用户不需要记住多个密码。如果用户更新了自己的域密码,也不必更改SQLServer2012的密码。但是,在该模式下用户需要遵从Windows安全模式的所有规则,并可以用这种模式去锁定账户、审核登录或迫使用户周期性地更改登录密码。该模式是SQLServer的默认登录模式。2.混合身份验证模式使用混合身份验证模式,可以同时使用Windows身份验证和SQLServer身份验证。SQLServer身份验证主要用于外部的用户,如可以从Internet访问数据库的用户。使用混合身份验证模式时,SQLServer2012首先确定用户的连接是否使用有效的SQLServer用户账户登录。如果用户有有效的登录和使用正确的密码,则接受用户的连接;如果用户有有效的登录,但是使用了不正确的密码,则拒绝用户的连接;当用户没有有效的登录时,SQLServer2012检查Windows账户的信息。在这种情况下,SQLServer2012将会确定Windows账户是否有连接到服务器的权限。如果账户有权限,连接被接受;否则,连接被拒绝。在使用SQLServer身份验证模式时,用户必须提供登录名和密码。下面对身份验证模式的配置进行简单介绍。在安装SQLServer2012时或在使用SQLServer2012连接其他服务器时,需要指定验证模式。对于已经指定了身份验证模式的SQLServer2012服务器,也可以对其身份验证模式进行修改,具体步骤如下所示:1)打开SQLServerManagementStudio窗口,设置登录的“服务器类型”为“数据库引擎”,并使用适合的身份验证方式与服务器建立连接。2)在“对象资源管理器”窗格中右击服务器名称,从弹出的快捷菜单中选择“属性”,打开“服务器属性”窗口。3)选择“安全性”选项,打开“安全性”选项页,在此选项页中可以设置身份验证模式,如右图所示。14.3登录管理14.3.1将Windows账号添加到SQLServer中1)在Windows7的控制面板中,单击“用户账户和家庭安全”下的“添加或删除账户”选项;在打开的页面中单击“创建一个新账户”链接,打开如图所示的界面,填写用户的名称并选择用户类型后,单击“创建账户”按钮即可完成创建。下面以windows7操作系统为例进行操作。新建Windows账号2)连接SQLServerManagementStudio,在“对象资源管理器”窗格中展开“安全性”节点,右击“登录名”节点;从弹出的快捷菜单中选择“新建登录名”命令,打开“登录名”窗口,如图所示。3)在“登录名”窗口中,点选“Windows身份验证”单选按钮;单击右侧的“搜索”按钮,弹出“选择用户或组”对话框,在“输入要选择的对象名称”文本框中填入“本机计算机名\SQL”,也可以单击“高级”按钮进行立即查找,如图所示。设置完毕后单击两次“确定”按钮。4)此时展开“对象资源管理器”窗口的“登录名”节点可以看到新的登录名,如下图所示。当用户以SQL用户的身份登录到Windows后,可以用Windows身份验证模式直接登录SQLServer2012系统。14.3.2新建SQLServer账户只有获得Windows账户的用户才能与SQLServer2012建立信任连接,如果正在为其创建登录的用户无法建立信任连接,则必须为其创建标准登录(SQLServer登录)。创建标准登录的步骤如下:1)连接SQLServerManagementStudio,在“对象资源管理器”窗格中展开“服务器”节点。2)右击“登录名”节点,从弹出的快捷菜单中选择“新建登录名”命令,打开“登录名”窗口。3)在“登录名”窗口中,点选“SQLServer身份验证”单选按钮,设置登录名为“jack”,密码为“123”,并将默认数据库设置为jw数据库,如下图所示。4)选择“用户映射”选项,打开“用户映射”选项页,选中“jw”数据库前面的复选框,如图所示。5)设置完毕后,单击“确定”按钮,即完成登录名的创建。14.3.3新建数据库用户创建数据库用户可以分为两个步骤:首先,创建数据库用户所要使用的SQLServer2012登录名;然后为数据库创建用户,指定到创建的登录名。具体创建方法如下。1)连接SQLServerManagementStudio,展开“服务器”→“数据库”→“jw”数据库“安全性”节点。2)右击“用户”节点,从弹出的快捷菜单中选择“新建用户”命令,打开“数据库用户”窗口。3)在“用户名”文本框中输入“tom”。单击“登录名”文本框旁边的

按钮,打开“选择登录名”对话框。单击“浏览”按钮,打开“查找对象”对话框,选择mary登录名,单击“确定”,返回“数据库用户”窗口。4)选择“默认架构”为dbo,创建结果如下图所示。5)单击“确定”按钮,完成数据库用户的创建。14.4权限管理14.4.1权限概述1.预先定义的权限和预先未定义的权限预先定义的权限是指系统安装之后,不必通过授权即拥有的权限。如14.5节中将讲到的固定服务器角色和固定数据库角色所拥有的权限,即属于预先定义的权限,对象的所有者也拥有该对象的所有权限以及该对象所包含的对象的所有权限。预先未定义的权限是指那些需要经过授权或继承才能得到的权限。大多数的安全主体都需要经过授权才能获得对安全对象的使用权限。2.针对所有对象的权限和针对特殊对象的权限针对所有对象的权限表示针对SQLServer2012中的所有对象,如CONTROL权限是对所有对象都有的权限。针对特殊对象的权限是指某些权限只能在特定的对象上起作用,例如,INSERT仅可以用作表的权限,不可以用作存储过程的权限;而EXECUTE只可以用作存储过程的权限,不能用作表的权限。对于表和视图,所有者可以授予数据库用户INSERT,UPDATE,DELETE,SELECT和REFERENCES五种权限。在数据库用户对表执行相应操作之前,必须事先获取相应的操作权限。例如,用户想浏览表中的数据,则必须首先获得所有者授予的SELECT权限。14.4.2权限操作在SQLServer2012中,用户和角色的权限以记录的形式存储在各个数据的sysprotects系统表中。权限分为三种状态:授予(Grant)、撤销(Revoke)、拒绝(Deny)。授予:授予权限以执行相关的操作。如果是角色,则所有该角色的成员继承此权限。撤销:撤销授予的权限,但不会显示阻止用户或角色执行操作。用户或角色仍然能继承其他角色的Grant权限。拒绝:拒绝执行操作的权限,并组织用户或角色继承权限,该语句优先于其他授予的权限。1.授予权限可以使用GRANT语句授予权限。其语法格式如下:GRANT{ALL|statement[,…n]}TOsecurity_account[,…n]其中:ALL:授予所有可以应用的权限。statement:表示授予权限的命令,如SELECT,UPDATE。security_account:定义被授予权限的用户单位。security_account可以是SQLServer的数据库用户或SQLServer的角色,也可以是Windows的用户或工作组。【例14-1】授予tom对jw数据中Class表的SELECT,DELETE和UPDATE权限。USEjwGOGRANTSELECT,DELETE,UPDATEONClassTOtom2.撤销权限REVOKE语句可以撤销以前授予或拒绝的权限。REVOKE语句的基本语法与授予权限大致相同。【例14-2】撤销tom对jw数据中Class表的DELETE权限。USEjwGOREVOKEDELETEONClassTOtom3.拒绝权限在授予用户对象权限以后,数据库管理员可以根据实际情况在不撤销用户访问权限的情况下,拒绝用户访问数据库对象。【例14-3】拒绝tom对jw数据中Class表的UPDATE权限。USEjwGODENYUPDATEONClassTOtom结合例14-1和例14-2,此时,当以tom用户身份登录jw数据库时,可以对Class表执行SELECT权限。需要注意的是,DENY语句具有覆盖性,如果使用DENY命令拒绝了某用户的某项操作,即使该用户后来又加入了具有该权限的某个角色,该用户依然无法使用该项权限。14.5角色管理14.5.1固定角色1.固定服务器角色SQLServer2012的服务器角色具有授予服务器管理的能力。右表描述了固定服务器角色的功能。可以通过系统存储过程sp_helpsrvrole或在SQLServerManagementStudio“对象资源管理器”窗格中,通过“安全性”→“服务器角色”节点查看到系统预定义的固定服务器角色,如右图所示。2.固定数据库角色每个数据库都有一些固定数据库角色。数据库中的角色的作用域只限于其对应的数据库内。下表描述了固定数据库角色的功能。可以通过系统存储过程sp_helpdbfixedrole或在SQLServerManagementStudio的“对象资源管理器”窗格中,通过“数据库”→“jw”数据库→“安全性”→“角色”→“数据库角色”节点查看到系统预定义的固定数据库角色,如右图所示。14.5.2用户自定义角色1.标准角色【例14-4】使用SQLServerManagementStudio创建数据库角色jw_role。1)连接SQLServerManagementStudio,在“对象资源管理器”窗格中,展开“数据库”→“jw”数据库→“安全性”→“角色”节点。2)右击“数据库角色”节点,从弹出的快捷菜单中选择“数据库角色”命令,打开“数据库角色”窗口。在“角色名称”文本框中输入“jw_role”,设置所有者为dbo,单击“添加”按钮选择该数据库角色的成员,最后单击“确定”按钮即可完成创建,如右图所示。2.应用程序角色标准用户能够登录SQLServer,并能运行赋予权限的语句。某些情况下,人们只希望用户在某应用程序中具有相关的权限,而不希望他们直接访问SQLServer。在这种情况下,就可以使用应用程序角色。应用程序角色需要激活才能使用,一般的使用方法是,由另一个标准用户激活应用程序角色,这样该角色就可以获得相应的权限了。标准角色和应用程序角色间的主要差别如下:应用程序角色不能包含成员。应用程序角色设置为未激活状态,要由其他标准角色激活才能使用。一旦激活应用程序角色,SQLServer2012就不再将用户作为他们本身来看待,而是将用户作为应用程序来看待,即原用户的权限将会被应用程序角色所覆盖。【例14-5】创建应用程序角色app_jw_department,并赋予该角色对Department表的“插入”和“更改”的权限。1)连接SQLServerManagementStudio,在“对象资源管理器”窗格中,展开“数据库”→“jw”数据库→“安全性”→“角色”节点。2)右击“应用程序角色”节点,从弹出的快捷菜单中选择“应用程序角色”命令。打开“应用程序角色”窗口,在“角色名称”文本框中输入“app_jw_department”,设置默认架构为dbo,密码设置为123,如图所示。3)选择“安全对象”选项,打开“安全对象”选项页,单击“搜索”按钮,打开“添加对象”对话框,点选“特定对象”单选按钮,如下图所示。4)单击“确定”按钮,打开“选择对象”对话框,选择对象类型为“表”,在“输入要选择的对象名称(示例)”文本框中,浏览选择“[dbo].[Department]”,如下图所示,单击“确定”按钮。5)返回“

温馨提示

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

评论

0/150

提交评论