SQLServer2008基础教程用户账号权限管理.ppt

上传人:本田雅阁 文档编号:2127545 上传时间:2019-02-19 格式:PPT 页数:85 大小:1.69MB
返回 下载 相关 举报
SQLServer2008基础教程用户账号权限管理.ppt_第1页
第1页 / 共85页
SQLServer2008基础教程用户账号权限管理.ppt_第2页
第2页 / 共85页
SQLServer2008基础教程用户账号权限管理.ppt_第3页
第3页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SQLServer2008基础教程用户账号权限管理.ppt》由会员分享,可在线阅读,更多相关《SQLServer2008基础教程用户账号权限管理.ppt(85页珍藏版)》请在三一文库上搜索。

1、2019年2月19日,第1页,第3章 管理安全性,本章概述 本章要点 本章内容,2019年2月19日,第2页,本章概述,安全性是数据库管理系统的重要特征。能否提供全面、完整、有效、灵活的安全机制,往往是衡量一个分布式数据库管理系统是否成熟的重要标志,也是用户选择合适的数据库产品的一个重要判断指标。 Microsoft SQL Server 2008系统提供了一整套保护数据安全的机制,包括角色、架构、用户、权限等手段,可以有效地实现对系统访问和数据访问的控制。本章全面讲述Microsoft SQL Server 2008系统的安全管理。,2019年2月19日,第3页,本章要点,理解数据库安全性问

2、题和安全性机制之间的关系 管理和维护登录名 SQL Server系统的密码策略 固定服务器角色的特点和管理 管理和维护数据库用户 管理和维护架构 权限类型和权限管理 系统内置的加密机制,2019年2月19日,第4页,本章内容,3.1 概述 3.2 管理登录名 3.3 固定服务器角色 3.4 管理数据库用户 3.5 管理架构 3.6 数据库角色 3.7 管理应用程序角色 3.8 管 理 权 限 3.9 SQL Server 2008内置的加密机制 3.10 使用SQL Server Management Studio工具 3.11 本章小结,3.1 概述,安全性是所有数据库管理系统的一个重要特征

3、。理解安全性问题是理解数据库管理系统安全性机制的前提。 下面结合Microsoft SQL Server 2008系统的安全特征,分析安全性问题和安全性机制之间的关系。,2019年2月19日,第5页,登录到系统,第一个安全性问题:当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中?这是一个最基本的安全性问题,也是数据库管理系统提供的基本功能。 在Microsoft SQL Server 2008系统中,通过身份验证模式和主体解决这个问题。,2019年2月19日,第6页,身份验证模式,身份验证模式是Microsoft SQL Server 2008系统验证客户端和服务器之间连接的方式

4、。Microsoft SQL Server 2008系统提供了两种身份验证模式:Windows身份验证模式和混合模式。在Windows身份验证模式中,用户通过Microsoft Windows用户账户连接时,SQL Server使用Windows操作系统中的信息验证账户名和密码。Windows身份验证模式使用Kerberos安全协议,通过强密码的复杂性验证提供密码策略强制、账户锁定支持、支持密码过期等。在混合模式中,当客户端连接到服务器时,既可能采取Windows身份验证,也可能采取SQL Server身份验证。当设置为混合模式时,允许用户使用Windows身份验证SQL Server身份验证

5、进行连接。,2019年2月19日,第7页,主体,主体是可以请求系统资源的个体、组合过程。例如,数据库用户是一种主体,可以按照自己的权限在数据库中执行操作和使用相应的数据。 Microsoft SQL Server 2008系统有多种不同的主体,不同主体之间的关系是典型的层次结构关系,位于不同层次上的主体其在系统中影响的范围也不同。位于层次比较高的主体,其作用范围比较大;位于层次比较低的主体,其作用范围比较小。,2019年2月19日,第8页,操作,第二个安全性问题:当用户登录到系统中,他可以执行哪些操作、使用哪些对象和资源? 这也是一个基本的安全问题,在Microsoft SQL Server

6、2008系统中,通过安全对象和权限设置来解决这个问题。,2019年2月19日,第9页,主体和安全对象的结构示意图,2019年2月19日,第10页,所有,第三个安全性问题:数据库中的对象由谁所有?如果是由用户所有,那么当用户被删除时,其所拥有的对象怎么办,难道数据库对象可以成为没有所有者的“孤儿”吗? 在Microsoft SQL Server 2008系统中,这个问题是通过用户和架构分离来解决的。,2019年2月19日,第11页,数据库对象、架构和用户之间的关系示意图,2019年2月19日,第12页,3.2 管理登录名,管理登录名包括创建登录名、设置密码策略、查看登录名信息及修改和删除登录名等

7、。 下面讲述登录名管理的内容,注意,sa是一个默认的SQL Server登录名,拥有操作SQL Server系统的所有权限。该登录名不能被删除。当采用混合模式安装Microsoft SQL Server系统之后,应该为sa指定一个密码。,2019年2月19日,第13页,创建登录名,在Microsoft SQL Server 2008系统中,许多操作都既可以通过Transact-SQL语句完成,也可以通过Microsoft SQL Server Management Studio工具来完成。 下面主要介绍如何使用Transact-SQL语句创建登录名。在创建登录名时,既可以通过将Windows登

8、录名映射到SQL Server系统中,也可以创建SQL Server登录名。,2019年2月19日,第14页,使用Windows登录名创建登录名,2019年2月19日,第15页,创建有默认数据库的登录名,2019年2月19日,第16页,创建SQL Server登录名,2019年2月19日,第17页,Microsoft SQL Server 2008系统的密码策略问题,密码复杂性和密码过期两大特征 密码的复杂性是指通过增加更多可能的密码数量来阻止黑客的攻击。 密码过期策略是指如何管理密码的使用期限。在创建SQL Server登录名时,如果使用密码过期策略,那么系统将提醒用户及时更改旧密码和登录名

9、,并且禁止使用过期的密码。,2019年2月19日,第18页,关键字,在使用CREATE LOGIN语句创建SQL Server登录名时,为了实施上述的密码策略,可以指定HASHED、MUST_CHANGE、CHECK_EXPIRATION、CHECK_PLICY等关键字。,2019年2月19日,第19页,HASHED关键字,HASHED关键字用于描述如何处理密码的哈希运算。 在使用CREATE LOGIN语句创建SQL Server登录名时,如果在PASSWORD关键字后面使用HASHED关键字,那么表示在作为密码的字符串存储到数据库之前,对其进行哈希运算。 如果在PASSWORD关键字后面没

10、有使用HASHED关键字,那么表示作为密码的字符串已经是经过哈希运算之后的字符串,因此在存储到数据库之前不再进行哈希运算了。,2019年2月19日,第20页,其他关键字,MUST_CHANGE关键字表示在首次使用新登录名时提示用户输入新密码。 CHECK_ EXPIRATION关键字表示是否对该登录名实施密码过期策略。 CHECK_PLICY关键字表示对该登录名强制实施Windows密码策略。,2019年2月19日,第21页,使用密码策略创建SQL Server登录名,2019年2月19日,第22页,维护登录名,登录名创建之后,可以根据需要修改登录名的名称、密码、密码策略、默认的数据库等信息,

11、可以禁用或启用该登录名,甚至可以删除不需要的登录名。,2019年2月19日,第23页,使用ALTER LOGIN修改登录名,2019年2月19日,第24页,修改Rudolf登录名的密码,2019年2月19日,第25页,禁用和启用登录名,2019年2月19日,第26页,3.3 固定服务器角色,固定服务器角色是服务器级别的主体,它们的作用范围是整个服务器。 固定服务器角色已经具备了执行指定操作的权限,可以把其他登录名作为成员添加到固定服务器角色中,这样该登录名可以继承固定服务器角色的权限。 下面首先讲述Microsoft SQL Server 2008系统提供的固定服务器角色的特点,然后分析如何处

12、理登录名与固定服务器角色之间的关系。,2019年2月19日,第27页,固定服务器角色的特点,固定服务器角色也是服务器级别的主体,已经具备了执行指定操作的权限。 Microsoft SQL Server 2008系统提供了9个固定服务器角色,这些角色的清单和功能描述如表3-1所示。,2019年2月19日,第28页,固定服务器角色,2019年2月19日,第29页,固定服务器角色和登录名,在Microsoft SQL Server系统中,可以把登录名添加到固定服务器角色中,使登录名作为固定服务器角色的成员继承固定服务器角色的权限。 对于登录名来说,可以判断其是否为某个固定服务器角色的成员。 用户可以

13、使用sp_addsrvrolemember、sp_helpsrvrolememeber、sp_dropsrvrolemember等存储过程和IS_SRVROLEMEMBER函数来执行有关固定服务器角色和登录名之间关系的操作。,2019年2月19日,第30页,sp_addsrvrolemember,如果希望指定的登录名成为某个固定服务器角色的成员,可以使用sp_addsrvrolemember存储过程来完成这种操作。 sp_addsrvrolemember存储过程的语法如下: sp_addsrvrolemember login_name, role_name,2019年2月19日,第31页,在s

14、ysadmin角色中增加成员,2019年2月19日,第32页,sp_helpsrvrolemember,如果要查看指定的固定服务器角色的成员或所有的固定服务器角色的成员,可以使用sp_helpsrvrolemember存储过程。 如果希望判断指定的登录名是否为某个固定服务器角色的成员,可以使用IS_SRVROLEMEMBER函数。该函数返回值是1时,表示当前用户的登录名是成员;返回0时,表示不是成员;否则,表示指定的固定服务器角色名称是错误的。是表示该登录名成员不是当前固定服务器角色的成员,但是依然作为系统的登录名存在。,2019年2月19日,第33页,sp_dropsrvrolemember

15、,如果希望把固定服务器角色的某个成员删除,那么可以使用sp_dropsrvrolemember存储过程。删除固定服务器角色的登录名成员,只是表示该登录名成员不是当前固定服务器角色的成员,但是依然作为系统的登录名存在。,2019年2月19日,第34页,3.4 管理数据库用户,数据库用户是数据库级的主体,是登录名在数据库中的映射,是在数据库中执行操作和活动的行动者。 在Microsoft SQL Server 2008系统中,数据库用户不能直接拥有表、视图等数据库对象,而是通过架构拥有这些对象。数据库用户管理包括创建用户、查看用户信息、修改用户、删除用户等操作。,2019年2月19日,第35页,创

16、建用户,可以使用CREATE USER语句在指定的数据库中创建用户。 由于用户是登录名在数据库中的映射,因此在创建用户时需要指定登录名。,2019年2月19日,第36页,创建登录名的数据库用户,2019年2月19日,第37页,创建带有默认架构的数据库用户,2019年2月19日,第38页,查看和dbo,如果希望查看数据库用户的信息,可以使用sys.database_principals目录视图。该目录视图包含了有关数据库用户的名称、ID、类型、默认的架构、创建日期和最后修改日期等信息。 dbo是数据库中的默认用户。SQL Server系统安装之后,dbo用户就自动存在了。dbo用户拥有在数据库中

17、操作的所有权限。默认情况下,sa登录名在各数据库中对应的用户是dbo用户。,2019年2月19日,第39页,激活guest用户,2019年2月19日,第40页,维护用户,可以使用ALTER USER语句修改用户。修改用户包括两个方面,第一,可以修改用户名;第二可以修改用户的默认架构。 修改用户名与删除、重建用户是不同的。修改用户名仅仅是名称的改变,不是用户与登录名对应关系的改变,也不是用户与架构关系的变化。,2019年2月19日,第41页,修改用户名,2019年2月19日,第42页,修改和删除,也可以使用ALTER USER语句修改指定用户的默认架构,这时可以使用WITH DEFAULT_ S

18、CHEMA子句。 如果用户不再需要了,可以使用DROP USER语句删除数据库中的用户。,2019年2月19日,第43页,3.5 管理架构,架构是形成单个命名空间的数据库实体的集合。 架构是数据库级的安全对象,也是Microsoft SQL Server 2008系统强调的特点,是数据库对象的容器。 管理架构包括创建架构、查看架构的信息、修改架构及删除架构等。,2019年2月19日,第44页,创建架构,使用CREATE SCHEMA语句不仅可以创建架构,同时还可以创建该架构所拥有的表、视图并且可以对这些对象设置权限。 下面讲述如何创建架构。,2019年2月19日,第45页,创建一个简单的架构,

19、2019年2月19日,第46页,创建有明确所有者的架构,2019年2月19日,第47页,创建架构时同时创建一个表,2019年2月19日,第48页,创建架构的同时创建表和管理权限,2019年2月19日,第49页,查看数据库中的架构信息,如果要查看数据库中的架构信息,可以使用sys.schemas架构目录视图。 该视图包含了数据库中架构的名称、架构的标识符和架构所有者的标识符等信息。,2019年2月19日,第50页,修改和删除架构,修改架构是指将特定架构中的对象转移到其他架构中。 可以使用ALTER SCHEMA语句完成对架构的修改。 需要注意的是,如果要更改对象本身的结构,那么应该使用针对该对象

20、的ALTER语句。,2019年2月19日,第51页,转移对象的架构,2019年2月19日,第52页,删除架构,2019年2月19日,第53页,3.6 数据库角色,数据库角色是数据库级别的主体,也是数据库用户的集合。数据库用户可以作为数据库角色的成员,继承数据库角色的权限。数据库管理人员可以通过管理角色的权限来管理数据库用户的权限。 Microsoft SQL Server 2008系统提供了一些固定数据库角色和public特殊角色。 下面详细介绍数据库角色的特点和管理方式。,2019年2月19日,第54页,管理数据库角色,管理数据库角色包括创建数据库角色、添加和删除数据库角色成员、查看数据库角

21、色信息及修改和删除角色等。,2019年2月19日,第55页,创建简单的角色,2019年2月19日,第56页,创建带有所有者的角色,2019年2月19日,第57页,sp_addrolemember,如果要为角色添加成员,可以使用sp_addrolemember存储过程。 使用该存储过程可以为当前数据库中的数据库角色添加数据库用户、数据库角色、Windows登录名和Windows组。 sp_addrolemember存储过程的使用方式如下所示: sp_addrolemember role_name, security_account,2019年2月19日,第58页,在角色中添加成员,2019年2月

22、19日,第59页,其他操作,与sp_addrolemember存储过程相对应的是sp_droprolemember存储过程,后者可以删除指定数据库角色中的成员。 可以使用sys.database_principals安全性目录视图查看当前数据库中所有数据库角色信息,使用sys.database_role_members安全性目录视图查看当前数据库中所有数据库角色和其成员的信息。 如果要修改数据库角色的名称,可以使用ALTER ROLE语句。如果某个角色确实不再需要了,可以使用DROP ROLE语句删除指定的角色。,2019年2月19日,第60页,固定数据库角色,就像固定服务器角色一样,固定数据

23、库角色也具有了预先定义好的权限。使用固定数据库角色可以大大简化数据库角色权限管理工作。 Microsoft SQL Server 2008系统提供了9个固定数据库角色,这些固定数据库角色清单和权限描述如表3-2所示。,2019年2月19日,第61页,public角色,除了3.6.2节介绍的固定数据库角色之外,Microsoft SQL Server系统成功安装之后,还有一个特殊的角色,这就是public角色。 public角色有两大特点,第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员。 固定数据库角色都有预先定义好的权限,但是不能为这些角色增加或删除权限。虽然初始状态下publi

24、c角色没有任何权限,但是可以为该角色授予权限。,2019年2月19日,第62页,3.7 管理应用程序角色,应用程序角色是一个数据库主体,它可以使应用程序能够用其自身的、类似用户的权限来运行。 在使用应用程序时,仅允许特定用户来访问数据库中的特定数据,如果不使用这些特定的应用程序连接,就无法访问这些数据。从而实现安全管理的目的。,2019年2月19日,第63页,特点,与数据库角色相比来说,应用程序角色有3个特点:第一,在默认情况下该角色不包含任何成员;第二,在默认情况下该角色是非活动的,必须激活之后才能发挥作用;第三,该角色有密码,只有拥有应用程序角色正确密码的用户才可以激活该角色。当激活某个应

25、用程序角色之后,用户会失去自己原有的权限,转而拥有应用程序角色的权限。,2019年2月19日,第64页,创建应用程序角色,2019年2月19日,第65页,激活应用程序角色,2019年2月19日,第66页,修改应用程序角色,2019年2月19日,第67页,3.8 管理权限,权限是执行操作、访问数据的通行证。只有拥有了针对某种安全对象的指定权限,才能对该对象执行相应的操作。 在Microsoft SQL Server 2008系统中,不同的对象有不同的权限。为了更好地理解权限管理的内容,下面从权限的类型、常用对象的权限、隐含的权限、授予权限、收回权限、否认权限等几个方面介绍。,2019年2月19日

26、,第68页,权限的类型,在Microsoft SQL Server 2008系统中,不同的分类方式可以把权限分成不同的类型。如果依据权限是否预先定义,可以把权限分为预先定义的权限和预先未定义的权限。 预先定义的权限是指那些系统安装之后,不必通过授予权限即拥有的权限。 预先未定义的权限是指那些需要经过授权或继承才能得到的权限。,2019年2月19日,第69页,对象权限,如果按照权限是否与特定的对象有关,可以把权限分为针对所有对象的权限和针对特殊对象的权限。 针对所有对象的权限表示这种权限可以针对SQL Server系统中所有的对象,例如,CONTROL权限是所有对象都有的权限。 针对特殊对象的权

27、限是指某些权限只能在指定的对象上起作用,例如INSERT可以是表的权限,但是不能是存储过程的权限,而EXECUTE可以是存储过程的权限,但是不能是表的权限。下面,详细讨论这两种权限类型。 在Microsoft SQL Server 2008系统中,针对所有对象的权限包括CONTROL、ALTER、ALTER ANY、TAKE OWNERSHIP、INPERSONATE、CREATE、VIEW DEFINITION等。,2019年2月19日,第70页,常用对象的权限,在使用GRANT语句、REVOKE语句、DENY语句执行权限管理操作时,经常使用ALL关键字表示指定安全对象的常用权限。 不同的安

28、全对象往往具有不同的权限。 安全对象的常用权限如表3-3所示。,2019年2月19日,第71页,授予权限,在Microsoft SQL Server 2008系统中,可以使用GRANT语句将安全对象的权限授予指定的安全主体。这些可以使用GRANT语句授权的安全对象包括应用程序角色、程序集、非对称密钥、证书、约定、数据库、端点、全文目录、函数、消息类型、对象、队列、角色、路由、架构、服务器、服务、存储过程、对称密钥、系统对象、表、类型、用户、视图和XML架构集合等。 GRANT语句的语法是比较复杂的,不同的安全对象有不同的权限,因此也有不同的授权方式。 下面,通过一些示例介绍如何使用GRANT语

29、句执行授权操作。,2019年2月19日,第72页,执行针对数据库授权的GRANT语句,2019年2月19日,第73页,执行针对表授权的GRANT语句,2019年2月19日,第74页,收回权限,如果希望从某个安全主体处收回权限,可以使用REVOKE语句。 REVOKE语句是与GRANT语句相对应的,可以把通过GRANT语句授予给安全主体的权限收回。 也就是说,使用REVOKE语句可以删除通过GRANT语句授予给安全主体的权限。,2019年2月19日,第75页,使用REVOKE语句收回授予的权限,2019年2月19日,第76页,收回WITH GRANT OPTION子句形成权限时的错误,2019年

30、2月19日,第77页,成功地收回WITH GRANT OPTION子句形成权限,2019年2月19日,第78页,否认权限,安全主体可以通过两种方式获得权限,第一种方式是直接使用GRANT语句为其授予权限,第二种方式是通过作为角色成员继承角色的权限。 使用REVOKE语句只能删除安全主体通过第一种方式得到的权限,要想彻底删除安全主体的特定权限必须使用DENY语句。 DENY语句的语法形式与REVOKE语句非常类似。,2019年2月19日,第79页,使用DENY语句删除权限,2019年2月19日,第80页,3.9 SQL Server 2008内置的加密机制,Microsoft SQL Serve

31、r 2008系统不是简单地提供一些加密函数,而是把成熟的数据安全技术引进到数据库中,形成了一个清晰的内置加密层次结构。 加密是一种保护数据的机制,它通过将原始数据打乱,达到只有经过授权的人员才能访问和读取数据、未授权人不能识别或读取数据的目的,从而增强了数据的保密性。,2019年2月19日,第81页,对称加密机制和非对称加密机制示意图,2019年2月19日,第82页,3.10 使用SQL Server Management Studio工具,除了可以使用Transact-SQL语句执行有关安全的操作之外,使用SQL Server Management Studio图形工具也可以完成许多有关安全

32、管理的操作。需要注意的是,考虑到性能和安全等原因,大多数情况下建议使用Transact-SQL语句执行相关的操作。 下面,通过如何创建登录名讲述如何使用图形工具执行安全操作。,2019年2月19日,第83页,3.11 本章小结,本章首先分析了安全性问题和安全性机制间的关系。然后,详细研究了登录名管理的内容。接下来,讨论了服务器角色的作用和类型,介绍了用户和架构管理的内容。用户是数据库级的安全对象,用户和架构分析是Microsoft SQL Server 2008系统的一个很大的特色。数据库角色和应用程序角色也是本章的重要内容。之后,对权限管理进行了全面分析,介绍了系统内置的加密机制的特征。最后

33、,介绍如何使用图形工具执行各种操作。,2019年2月19日,第84页,【思考和练习】,1. 数据库管理系统中常见的安全性问题是什么?如何解决这些安全性问题? 2. 什么是安全主体和安全对象? 3. 登录名的作用和类型是什么? 4. 什么是密码策略?密码策略的作用是什么? 5. 服务器角色的作用和类型是什么? 6. 数据库中有哪些特殊的用户?这些用户的作用是什么? 7. 用户的默认架构与架构的所有者是否一回事? 8. 为什么要实现用户和架构分离? 9. 应用程序角色的特点是什么?如何使用应用程序角色? 10. Microsoft SQL Server 2008系统的权限类型是什么?如何执行权限管理操作? 11. Microsoft SQL Server 2008系统内置的加密机制的特点是什么?,2019年2月19日,第85页,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1