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

下载本文档

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

文档简介

1、第10章 SQL Server的安全管理 *,本章要点 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性(包括操作系统、网络系统的安全性)是紧密联系、相互支持的。 本章围绕安全性管理主要介绍如下内容:SQL Server 2005安全性概述、SQL Server 2005的验证模式、登录管理、用户管理、角色管理、权限管理及系统加密机制等。,本章目录,10.1 SQL Server 2005安全性概述 10.2 SQL Server 2005的验证模式 10.3 登录管理 10.4

2、用户管理 10.5 角色管理 10.6 权限管理 10.7 加密机制 练习题10 上机实习9,10.1 SQL Server 2005安全性概述,返回本节首页,SQL Server 2005安全系统的构架建立在用户和用户组的基础上。Windows中的用户和本地组及全局组可以映射到SQL Server 2005中的安全登录帐户,也可以创建独立Windows帐户的安全登录帐户。SQL Server提供了2种安全管理模式,即Windows 身份验证模式和混合身份验证模式,数据库设计者和数据库管理员可以根据实际情况进行选择。 1、两个安全性阶段 在SQL Server 2005中工作时,用户要经过两个

3、安全性阶段:身份验证和权限验证(授权)。每个用户必须通过登录帐户建立自己的连接能力(身份验证),以获得对SQL Server 2005实例的访问权限。然后,该登录必须映射到用于控制在数据库中所执行的活动(权限验证)的 SQL Server 用户帐户。如果数据库中没有用户帐户,则即使用户能够连接到 SQL Server 实例,也无法访问该数据库。 2、用户权限 当用户连接到SQL Server 2005实例后,他们可以执行的活动由授予以下帐户的权限确定:(1)用户的安全帐户;(2)用户的安全帐户所属Windows组或角色层次结构;(3)用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有

4、相应的权限。 管理权限包括授予或废除执行以下活动的用户权限:处理数据和执行过程(对象权限);创建数据库或数据库中的项目(语句权限);利用授予预定义角色的权限(暗示性权限)。,10.1 SQL Server 2005安全性概述,返回本节首页,3、视图安全机制 SQL Server 2005通过限制可由用户使用的数据,可以将视图作为安全机制的一部分。用户可以访问某些数据,进行查询和修改,但是表或数据库的其余部分是不可见的,也不能进行访问。对SQL Server 2005来说,无论在基础表(一个或多个)上的权限集合有多大,都必须授予、拒绝或废除访问视图中数据子集的权限。 4、加密方法 SQL Ser

5、ver 2005支持加密或可以加密的内容为:SQL Server 中存储的登录和应用程序角色密码;作为网络数据包而在客户端和服务器端之间发送的数据;SQL Server 2005中如下对象的定义内容:存储过程、用户定义函数、视图、触发器、默认值、规则等。 例如:SQL Server 2005可使用安全套接字层(SSL)加密在应用程序计算机和数据库计算机上的 SQL Server 实例之间传输的所有数据。 5、审核活动 SQL Server 2005提供审核功能,用以跟踪和记录每个SQL Server实例上已发生的活动(如成功和失败的记录)。SQL Server 2005还提供管理审核记录的接口

6、,即SQL事件探查器。只有sysadmin固定安全角色的成员才能启用或修改审核,而且审核的每次修改都是可审核的事件。,10.2 SQL Server 2005的验证模式,返回本节首页,10.2.1 Windows身份验证模式 10.2.2 混合身份验证模式 (也称SQL Server身份验证模式) 10.2.3 设置验证模式 10.2.4 SQL Server系统登录验证过程,10.2 SQL Server 2005的验证模式,返回本节首页,SQL Server 2005有两种安全验证模式:Windows 身份验证模式和混合身份验证模式(也称SQL Server 身份验证模式)。,返回本节首页

7、,10.2.1 Windows身份验证模式,Windows 身份验证模式是指用户通过 Windows 用户帐户连接到SQL Server,即用户身份由Windows 系统来验证。SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码。这是默认的身份验证模式,比混合验证模式安全得多。Windows 身份验证使用 Kerberos 安全协议,通过强密码的复杂性验证提供密码策略强制,提供帐户锁定支持,并且支持密码过期。 用户和组是由Windows维护的,因此当用户进行连接时,SQL Server将读取有关该用户在组中的成员资格信息。一般情况下,客户机都支持信任连接,建议使用Wi

8、ndows身份验证方式。使用Windows身份验证有如下特点:1) Windows验证模式下由Windows管理登录帐户,数据库管理员主要是使用该帐户;2) Windows有功能很强的工具与技术去管理用户的登录帐户;3) 可以在SQL Server中增加用户组,可以使用用户组。 SQL Server支持的登录帐户,能在系统表syslogins或目录视图sys.syslogins中找到。,返回本节首页,10.2.2 混合身份验证模式 (也称SQL Server身份验证模式),混合身份验证模式允许用户使用Windows身份和SQL Server身份进行连接。通过Windows登录帐户连接的用户可以

9、使用Windows验证的受信任连接。当用户使用指定的登录名称和密码进行非信任连接时,SQL Server检测输入的登录名和密码是否与系统Syslogins表中记录的情况相同,据此进行身份验证。如果不存在该用户的登录帐户,则身份验证失败。用户只有提供正确的登录名和密码,才能通过SQL Server的验证。 提供SQL Server身份验证是为了考虑非Windows客户兼容及向后兼容,早期SQL Server的应用程序可能要求使用SQL Server登录和密码。当SQL Server实例在Windows 98/Windows 2000 professional上运行时,由于Windows 98/W

10、indows 2000 professional不支持Windows身份验证模式,必须使用混合模式。非Windows客户端也必须使用SQL Server身份验证。 混合身份验证模式有如下特点:1)混合模式允许非Windows客户、Internet客户和混合的客户组连接到SQL Server中;2)增加了完全性方面的选择。 如果必须选择“混合身份验证模式”并要求使用SQL登录以适应旧式应用程序,则必须为所有SQL帐户设置强密码。这对于属于sysadmin角色的帐户(特别是sa帐户)尤其重要。,返回本节首页,10.2.3 设置验证模式,安装SQL Server 2005默认的是Windows 身份

11、验证模式。可以使用Management Studio工具来设置验证模式,但设置验证模式的工作只能由系统管理员来完成,以下是在Management Studio中的两种设置方法。 方法之一:1)打开Management Studio;2)在“已注册的服务器”子窗口中要设置验证模式的服务器上按鼠标右键,然后在弹出的快捷菜单上选择“属性”,系统弹出如图10-1所示的“编辑服务器注册属性”窗口;3)在“常规”选项卡中,“服务器名称”栏按“”格式选择要注册的服务器实例。“身份验证”栏在连接到SQL Server实例时,可以使用两种身份验证模式:Windows身份验证或SQL Server身份验证(或称混

12、合身份验证);4)设置完成后,单击“测试”按钮以确定设置是否正确;5)单击“保存”按钮,关闭对话窗口,完成验证模式的设置或改变。,返回本节首页,10.2.3 设置验证模式,图10-1 服务器注册属性窗口 图10-2 SQL Server系统登录验证过程 方法之二:1)在Management Studio对象资源管理器中,右键单击服务器,再单击“属性”。2)在“安全性”页上的“服务器身份验证”下,选择新的服务器身份验证模式,再单击“确定”。以上两种方法,均需要重新启动SQL Server后,才能生效。,返回本节首页,10.2.4 SQL Server系统登录验证过程,SQL Server系统登录

13、验证的过程其实就是鉴别合法用户的过程,SQL Server系统登录验证的过程如图10-2所示。,10.3 登录管理,返回本节首页,10.3.1 系统管理员登录帐户 10.3.2 使用Management Studio管理SQL Server登录帐户 10.3.3 用T-SQL管理SQL Server登录帐户 10.3.4 管理登录的最新T-SQL命令,10.3 登录管理,返回本节首页,登录是基于服务器级使用的用户名称。在Windows验证模式下,可以在Windows全局组或域用户中创建登录;在SQL Server验证模式下,除了可在Windows全局组或域用户中创建登录外,还可以在Window

14、s的非全局组、非域用户甚至非Windows用户中创建登录。,返回本节首页,10.3.1 系统管理员登录帐户,SQL Server有两个默认的系统管理员登录帐户:sa和BUILTINAdministrators。这两个登录帐户具有SQL Server系统和所有数据库的全部权限。 在安装SQL Server之后,自动创建的登录标识符只有系统管理员sa帐户和BUILTINAdministrators帐户,BUILTINAdministrators是Windows系统的系统管理员组。sa是一个特殊的登录名,它代表SQL Server身份验证机制下SQL Server的系统管理员,sa始终关联dbo数据

15、库用户,并且没有为sa帐号指定口令。这意味着如果使用SQL Server身份验证模式,任何得知这个SQL Server存在的人都可以登录到SQL ServeR上,并且可以做任意操作。为安全起见,在安装SQL Server后,应尽快地给系统管理员帐户指定口令。 为SQL Server系统管理员指定口令的步骤如下:1)在“对象资源管理器”窗口中某数据库引擎下;2)分别展开“安全性”、“登录名”节点,查看所有当前存在的登录标识符,系统管理员帐户sa应包含在其中;3)右击sa,然后选择“属性”,系统弹出“登录属性”窗口;4)在“密码”一栏中输入新的口令,并在“确认密码”一栏再次输入相同“密码”;5)在

16、“默认数据库”一栏输入sa默认使用的数据库;6)单击“确定”按钮,系统关闭对话框,这样完成了为系统管理员设置新口令操作。,返回本节首页,10.3.2 使用Management Studio管理SQL Server登录帐户,在Management Studio中能方便地创建、查看、修改、删除登录帐户。 1、映射Windows登录帐户为SQL Server登录帐户 在Management Studio中可以将一个Windows帐户或一个组映射成一个SQL Server登录名。每个SQL Server登录名都可以在指定的数据库中创建数据库用户名。这个特性可以让Windows组中的用户直接访问服务器上

17、的数据库。至于这些指定的数据库用户的权限,可以另行指定的。使用Management Studio将已经存在的Windows帐户或组映射到SQL Server中的操作步骤如下: 1)启动Management Studio,分别展开“服务器”、“安全性”、“登录名”;2)右击“登录名”,选择“新建登录名”项,进入“登录名-新建”对话框;3)选择Windows验证模式,登录名通过按“搜索”按钮来自动产生,按“搜索”按钮后“选择用户或组”对话框如图10-3所示,在对象名称框内直接输入名称或按“高级”按钮后查找用户或组的名称来完成输入;4)单击“服务器角色”选项卡,可以查看或更改登录名在固定服务器角色中

18、的成员身份;5)单击“用户映射”选项卡,以查看或修改SQL登录名到数据库用户的映射,并可选择其在该数据库中允许担任的数据库角色;6)单击“确定”按钮,一个Windows组或用户即可增加到SQL Server登录帐户中去了。,返回本节首页,10.3.2 使用Management Studio管理SQL Server登录帐户,图10-3 选择用户或组对话框 2、在Management Studio中创建SQL Server登录帐户 在Management Studio中创建SQL Server登录帐户的具体步骤类似于“在Management Studio中映射Windows登录帐户为SQL Ser

19、ver登录帐户”,只是,要选择SQL Server验证模式,这时需要输入登录帐户名称、密码及确认密码。其它选项卡的设置操作类似。最后按“确定”按钮,即增加了一个新的登录帐户。,返回本节首页,10.3.2 使用Management Studio管理SQL Server登录帐户,3、在Management Studio中查看、修改或删除登录帐户 一个新的登录帐户增加后,可以在Management Studio中查看其详细信息,并能做修改或删除操作。方法如下:1)启动Management Studio,分别展开“服务器”、“安全性”、“登录名”;2)单击“登录名”下的某一个登录帐户,在系统弹出菜单上

20、点击“属性”,可进入“登录属性”对话框查看该登录帐户的信息,同时需要时能直接修改相应帐户设置信息;3)在上一步系统弹出菜单上点击“删除”菜单,能出现“删除对象”对话框,在对话框上按“确定”按钮,能删除该登录帐户。 说明:sp_helplogins系统存储过程也能提供有关每个数据库中的登录及相关用户的信息。其语法:sp_helplogins LoginNamePattern=login,返回本节首页,10.3.3 用T-SQL管理SQL Server登录帐户,1、映射Windows登录帐户为SQL Server登录帐户 映射Windows登录帐户为SQL Server登录帐户的相关系统存储过程主

21、要有:sp_grantlogin、sp_denylogin、sp_revokelogin,它们可以分别允许、阻止、删除Windows用户或组到SQL Server的连接许可。 然而这些系统存储过程,有新的替换命令了。请用CREATE LOGIN、ALTER LOGIN、DROP LOGIN命令分别替换sp_grantlogin、sp_denylogin、sp_revokelogin。 1)sp_grantlogin:创建 SQL Server 登录名。其语法: sp_grantlogin loginame=login 例如为Windows用户CorporateBobJ.创建SQL Server

22、登录名,命令为: sp_grantlogin CorporateBobJ; 改用CREATE LOGIN首选实现方法命令为: CREATE LOGIN CorporateBobJ FROM WINDOWS; 2)sp_denylogin:禁止 Windows 用户或组连接到 SQL Server 实例。其语法: sp_denylogin loginame=login 例10-1 本例禁用Windows用户CorporateBobJ的SQL Server登录名,命令为: sp_denylogin CorporateBobJ 改用ALTER LOGIN首选实现方法命令为: ALTER LOGIN

23、CorporateGeorgeW DISABLE;,返回本节首页,10.3.3 用T-SQL管理SQL Server登录帐户,3)sp_revokelogin:从 SQL Server 中删除使用 CREATE LOGIN、sp_grantlogin或sp_denylogin 为 Windows 用户或组创建的登录项。 其语法:sp_revokelogin loginame= login 例10-2 本例删除 Windows 用户 CorporateBobJ 的登录项。 EXEC sp_revokelogin CorporateBobJ 或 EXEC sp_revokelogin Corpor

24、ateBobJ 改用DROP LOGIN首选实现方法命令为:drop login CorporateBobJ 2、管理SQL Server登录帐户 管理SQL Server登录帐户的相关系统存储过程主要有:sp_addlogin、sp_droplogin、sp_revokelogin,它们可以分别创建、删除SQL Server的登录帐户。 然而这些系统存储过程,后续版本的SQL Server 将不再使用。请避免在新的开发工作中使用它们。请用CREATE LOGIN、DROP LOGIN命令分别替换sp_addlogin、sp_droplogin。 1)sp_addlogin:创建新的 SQL

25、Server 登录,该登录允许用户使用 SQL Server 身份验证连接到 SQL Server 实例。其语法为: sp_addlogin loginame=login,passwd =password,defdb=database ,deflanguage=language,sid=sid,encryptopt=encryption_option,返回本节首页,10.3.3 用T-SQL管理SQL Server登录帐户,例10-3 本例为用户 Michael 创建 SQL Server 登录,密码为 B548bmM%f6,默认数据库为AdventureWorks,默认语言为us_engli

26、sh,SID为 0 x0123456789ABCDEF0123456789ABCDEF。 EXEC sp_addlogin Michael, B548bmM%f6,AdventureWorks,us_english, 0 x0123456789ABCDEF0123456789ABCDEF 改用CREATE LOGIN首选实现方法命令为: CREATE LOGIN Michael WITH PASSWORD=B548bmM%f6,DEFAULT_DATABASE=AdventureWorks, SID=0 x0123456789ABCDEF0123456789ABCDEF,DEFAULT_LAN

27、GUAGE=us_english 2)sp_droplogin:删除 SQL Server 登录,禁止以该登录名访问 SQL Server 实例。其语法:sp_droplogin loginame=login 例10-4 本例从SQL Server实例中删除Michael登录,命令为:sp_droplogin Michael;改用DROP LOGIN首选实现方法命令为:drop login Michael,返回本节首页,10.3.4 管理登录的最新T-SQL命令,管理登录的最新T-SQL命令为:CREATE LOGIN、ALTER LOGIN、DROP LOGIN。它们的语法及简单使用举例如下

28、: 1、CREATE LOGIN 创建新的SQL Server登录名。语法为: CREATE LOGIN login_name WITH | FROM :=WINDOWS WITH ,.|CERTIFICATE certname|ASYMMETRIC KEY asym_key_name 以下主要通过示例来说明。 例10-5 创建映射到凭据的登录名,本例将创建RLaszlo登录名。此登录名将映射到 LaszloR凭据。 CREATE LOGIN RLaszlo WITH PASSWORD= 978(*Mmz0KWnkdo26985,CREDENTIAL=LaszloR 例10-6 从证书创建登录

29、名,本例将从 master 中的证书创建 FOgisu 登录名。 USE MASTER; CREATE CERTIFICATE FOgisuCert09 WITH SUBJECT = FOgisu certificate in master database, EXPIRY_DATE = 02/02/2009; GO CREATE LOGIN FOgisu FROM CERTIFICATE FOgisuCert09; 例10-7 从Windows域帐户创建登录名,本例将从Windows域帐户创建 ADVWORKSfogisu登录名。 CREATE LOGIN ADVWORKSfogisu FR

30、OM WINDOWS,返回本节首页,10.3.4 管理登录的最新T-SQL命令,2、ALTER LOGIN 更改SQL Server登录帐户的属性。 语法:ALTER LOGIN login_name | WITH ,. 例10-8 启用已禁用的登录,本例将启用 KittiLert 登录: ALTER LOGIN KittiLert ENABLE; 例10-9 更改登录密码,本例将 KittiLert 登录密码更改为 3948wJ698FFF7。 ALTER LOGIN KittiLert WITH PASSWORD=3948wJ698FFF7; 例10-10 更改登录名称,本例将KittiL

31、ert 登录名称更改为 MacraeS。 ALTER LOGIN KittiLert WITH NAME=MacraeS; 例10-11 将登录名映射到凭据,本例将登录名MacraeS映射到凭据Custodian04。 ALTER LOGIN MacraeS WITH CREDENTIAL=Custodian04; 3、DROP LOGIN 删除 SQL Server 登录帐户。 语法:DROP LOGIN login_name,参数:login_name 指定要删除的登录名。 例10-12 将删除登录名WilliJo,命令为:DROP LOGIN WilliJo,10.4 用户管理,返回本节

32、首页,10.4.1 登录名与数据库用户名的关系 10.4.2 使用Management Studio管理数据库用户 10.4.3 用T-SQL管理数据库用户 10.4.4 改变数据库所有权,10.4 用户管理,返回本节首页,用户是基于数据库的名称,是和登录帐户相关联的。可以使用Management Studio和系统存储过程sp_grantdbaccess向数据库添加用户。只有数据库所有者及数据库管理员才有执行系统存储过程sp_grantdbaccess的权力,返回本节首页,10.4.1 登录名与数据库用户名的关系,登录名、数据库用户名是SQL Server中两个容易混淆的概念。登录名是访问S

33、QL Server的通行证。每个登录名的定义存放在master数据库的表syslogins(登录名是服务器级的)中。登录名本身并不能让用户访问服务器中的数据库资源。要访问具体数据库中的资源,还必须有该数据库的用户名。新的登录创建以后,才能创建数据库用户,数据库用户在特定的数据库内创建,必须和某个登录名相关联。数据库用户的定义信息存放在与其相关的数据库的sysusers表(用户名是数据库级的)中的,这个表包含了该数据库的所有用户对象以及和它们相对应的登录名的标识。用户名没有密码和它相关联,大多数情况下,用户名和登录名使用相同的名称,数据库用户名主要用于数据库权限的控制。,返回本节首页,10.4.

34、1 登录名与数据库用户名的关系,数据库用户创建后,通过授予用户权限来指定用户访问特定对象的权限。用户用一个登录名登录SQL Server,以数据库用户的身份访问服务器上的数据库。当一个登录帐户试图访问某个数据库时,SQL Server将在库中的sysusers表中查找对应的用户名,如果登录名不能映射到数据库的某个用户,系统尝试将该登录名映射成Guest用户,如果当前数据库不许可Guest用户,这个用户访问数据库将失败。 在SQL Server中,登录帐户和数据库用户是SQL Server进行权限管理的两种不同的对象。一个登录帐户可以与服务器上的所有数据库进行关联,而数据库用户是一个登录帐户在某

35、数据库中的映射,也即一个登录帐户可以映射到不同的数据库,产生多个数据库用户(但一个登录帐户在一个数据库至多只能映射一个数据库用户),一个数据库用户只能映射到一个登录帐户。允许数据库为每个用户对象分配不同的权限,这一特性为在组内分配权限提供了最大的自由度与可控性。,返回本节首页,10.4.2 使用Management Studio管理数据库用户,管理数据库用户包括对数据库用户的创建、查看、修改、删除等管理操作。首先如何创建数据库用户呢?一般有两种方法。一种是在创建登录帐户的同时指定该登录帐户允许访问的数据库,同时生成该登录帐户在数据库中的用户,如前面使用Management Studio创建登录

36、帐户时就能完成数据库用户的创建;另一种方法是先创建登录帐户,再将登录帐户映射到某数据库,在其中创建同名用户名。 1、在Management Studio中创建数据库用户 在Management Studio中创建数据库用户的步骤如下:1)启动Management Studio,分别展开“服务器”、“数据库”、“KCGL”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已有用户;2)右击“用户”文件夹,选择“新建数据库用户”,弹出出“数据库用户-新建”对话框;3)输入要创建的数据库用户的名字,然后在“登录名”对应的文本框中输入相对应的登录名,或点击“浏览”按钮,在系统中选择相应的登录名

37、;4)按“确定”按钮,将新创建的数据库用户添加到数据库中。,返回本节首页,10.4.2 使用Management Studio管理数据库用户,2、在Management Studio中查看、修改或删除数据库用户 操作方法是:1)启动Management Studio,分别展开“服务器”、“数据库”、“KCGL”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已有用户;2)右击某要操作的用户,在系统弹出的快捷菜单中含有“属性”、“删除”等菜单项;3)若按“属性”菜单项,可以查看或修改用户的权限信息,如“常规”中的“拥有架构”、“角色成员”;“安全对象”中的具体权限设置及“扩展属性”等;

38、4)若按“删除”菜单项,可从数据库中删除该用户。,返回本节首页,10.4.3 用T-SQL管理数据库用户,利用T-SQL命令对数据库用户同样有创建、查看、修改、删除等操作方法。主要使用到的T-SQL命令有CREATE USER、ALTER USER、DROP USER等。 1、用CREATE USER语句创建数据库用户 使用CREATE USER语句能向当前数据库添加数据库用户。其具体语法格式是: CREATE USER user_name FOR | FROM LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key

39、_name | WITHOUT LOGIN WITH DEFAULT_SCHEMA = schema_name 其中:user_name 指定在此数据库中用于识别该用户的名称;LOGIN login_name 指定要创建数据库用户的 SQL Server 登录名。login_name 必须是服务器中有效的登录名。当此 SQL Server 登录名进入数据库时,它将获取正在创建的数据库用户的名称和 ID。CERTIFICATE cert_name 指定要创建数据库用户的证书。其它参数略。 注意:不能使用 CREATE USER 创建 guest 用户,因为每个数据库中均已存在 guest 用户。

40、可通过授予 guest 用户 CONNECT 权限来启用该用户,如下所示: GRANT CONNECT TO GUEST 可以在sys.database_principals目录视图中查看有关数据库用户的信息,例如: 例10-13 创建数据库用户,本例首先创建名为 AbolrousHazem 且具有密码的服务器登录名,然后在 AdventureWorks 中创建对应的数据库用户AbolrousHazem。 CREATE LOGIN AbolrousHazem WITH PASSWORD = 340$Uuxwp7Mcxo7Khy; USE AdventureWorks; CREATE USER

41、AbolrousHazem,返回本节首页,10.4.3 用T-SQL管理数据库用户,2、用ALTER USER语句创建数据库用户 使用ALTER USER语句能重命名数据库用户或更改它的默认架构。其语法格式是: ALTER USER user_name WITH ,.n := NAME = new_user_name | DEFAULT_SCHEMA = schema_name 例10-16 更改数据库用户的名称,本例将数据库用户AbolrousHazem的名称更改为 Abolrous。 ALTER USER AbolrousHazem WITH NAME=Abolrous 例10-17 更改

42、用户的默认架构,本例将用户Abolrous的默认架构更改为Purchasing。 ALTER USER Abolrous WITH DEFAULT_SCHEMA=Purchasing; 3、数据库中删除数据库用户。其语法sp_revokedbaccess name_in_db=name 例10-18 本例从当前数据库中删除映射到EdmondsLolanSo的数据库用户。 EXEC sp_revokedbaccess EdmondsLolanSo; 但请避免在新的开发工作中使用sp_revokedbaccess命令,因为后续版本中将不再支持它了,请改用DROP USER。,返回本节首页,10.4

43、.4 改变数据库所有权,在SQL Server 2005中,可以更改当前数据库的所有者。任何可以访问到SQL Server 的连接的用户(SQL Server登录帐户或Windows用户)都可成为数据库的所有者。但无法更改系统数据库的所有权。 sp_changedbowner能用于更改当前数据库的所有者。其语法: sp_changedbowner loginame=login,map=remap_alias_flag 备注:执行sp_changedbowner之后,新所有者称为数据库中的dbo用户。dbo拥有执行数据库中所有活动的暗示性权限。若要显示有效login值的列表,请执行sp_help

44、logins存储过程。 执行只有login参数的sp_changedbowner会将数据库所有权改为login,并将先前分配给dbo的用户别名映射到这一新的数据库所有者。 例10-19 本例将登录名U1作为当前数据库的所有者,并映射到已分配给旧的数据库所有者的 U1现有别名。 EXEC sp_changedbowner U1; - 当前数据库的所有者改为U1 go sp_helpuser; - 查看数据库用户及所有者情况 EXEC sp_changedbowner sa -当前数据库的所有者改还为sa(设原为sa),10.5 角色管理,返回本节首页,10.5.1 public角色 10.5.2

45、 固定服务器角色 10.5.3 数据库角色 10.5.4 用户定义的角色 10.5.5 应用程序角色,10.5 角色管理,返回本节首页,SQL Server 2005数据库管理系统利用角色设置,管理用户的权限。角色的使用与Windows组的使用很相似。通过角色,可以将用户集中到一个单元中,然后对这个单元应用权限。对角色授予、拒绝或吊销权限时,将对其中的所有成员生效。 角色的功能非常强大,其原因是:首先,除固定的服务器角色外,其它角色都是在数据库内实现的。这意味着数据库管理员无需依赖Windows管理员来组织用户。第二,角色可以嵌套。嵌套的深度没有限制,但不允许循环嵌套。第三,数据库用户可以同时

46、是多个角色的成员。 这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。在SQL Server 2005中,可以认为有5种角色类型。,返回本节首页,10.5.1 public角色,public角色在每个数据库(包括系统数据库master、msdb、tempdb和model)中都存在,它也是数据库角色成员。Public角色供提供数据库中用户的默认权限,不能删除。其功能相当于Windows环境中的Everyone组。每个数据库用户都自动是此角色的成员,因此,无法在此角色中添加或删除用户。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象在p

47、ublic角色中对应的权限。 SQL Server包括几个预定义的角色,这些角色具有预定义的、不能授予其他用户帐户的内在权限。其中有两种最主要的预定义角色是:固定服务器角色和固定数据库角色。,返回本节首页,10.5.2 固定服务器角色,固定服务器角色的作用域在服务器范围内。它们存在于数据库之外,固定服务器角色的每个成员都能够向该角色中添加其它登录。 打开Management Studio,用鼠标单击“对象资源管理器”窗口中某数据库引擎的“安全性”目录下的“服务器角色”,显示当前数据库服务器的所有服务器角色,共有8个,具体名称及角色描述如下: 1)Bulkadmin:固定服务器角色的成员可以运行

48、 BULK INSERT 语句。 2)Dbcreator:固定服务器角色的成员可以创建、更改、删除和还原任何数据库。 3)diskadmin:固定服务器角色用于管理磁盘文件。 4)Processadmin:固定服务器角色的成员可以终止 SQL Server 实例中运行的进程。 5)securityadmin:固定服务器角色的成员将管理登录名及其属性。它们可以GRANT、DENY和REVOKE服务器级权限。也可以GRANT、DENY和REVOKE 数据库级权限。另外,它们可以重置SQL Server登录名的密码。 6)serveradmin:固定服务器角色的成员可以更改服务器范围的配置选项和关闭

49、服务器。 7)setupadmin:固定服务器角色的成员可以添加和删除链接服务器,并且也可以执行某些系统存储过程。 8)Sysadmin:固定服务器角色的成员可以在服务器中执行任何活动。默认情况下,Windows BUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。,返回本节首页,10.5.2 固定服务器角色,1、固定服务器角色的权限 固定服务器角色可以映射到SQL Server 2005包括的更为具体的权限。下表说明了固定服务器角色与权限的映射。 表10-1 固定服务器角色的服务器级权限,2、固定服务器角色成员的添加与删除 固定服务

50、器角色成员的添加与删除操作可以通过Management Studio或T-SQL两种方法来操作:,返回本节首页,10.5.2 固定服务器角色,(1)在Management Studio中添加或删除固定服务器角色成员 方法一:打开Management Studio,用鼠标单击“对象资源管理器”窗口某数据库引擎“安全性”“服务器角色”,显示当前数据库服务器的所有服务器角色,在要添加或删除成员的某固定服务器角色上按鼠标右键,按快捷菜单中的“属性”菜单项。在“服务器角色属性”对话框中,能方便地按“添加”或“删除”按钮实现对成员的添加或删除。 方法二:打开Management Studio,用鼠标单击“

51、对象资源管理器”窗口某数据库引擎“安全性”“登录名”;在某登录名上右击,按“属性”菜单,出现“登录属性”对话框或按“新建登录名”出现“登录-新建”对话框;点击“服务器角色”选项卡;能直接多项选择登录名需要属于的固定服务器角色。这样也完成了对固定服务器角色成员的添加与删除。,返回本节首页,10.5.2 固定服务器角色,(2)利用T-SQL添加或删除固定服务器角色成员 固定服务器角色成员添加或删除,主要使用到的系统存储过程有:sp_addsrvrolemember、sp_dropsrvrolemember、sp_helpsrvrole、sp_helpsrvrolemember。下面说明它们的基本使

52、用。 1)sp_addsrvrolemember 用于添加登录,使其成为固定服务器角色的成员。 语法:sp_addsrvrolemember loginame= login,rolename= role 备注:在将登录添加到固定服务器角色时,该登录将得到与此角色相关的权限。但不能更改sa登录和public的角色成员身份。 参数: loginame= login:添加到固定服务器角色中的登录名。login 可以是SQL Server登录或Windows登录;rolename=role:要添加登录的固定服务器角色的名称。role 可以是下列任意值:sysadmin、securityadmin、se

53、rveradmin、setupadmin、processadmin、diskadmin、dbcreator、bulkadmin 例10-20 本示例将Windows登录名CorporateHelenS添加到sysadmin固定服务器角色中:EXEC sp_addsrvrolemember CorporateHelenS,sysadmin;,返回本节首页,10.5.2 固定服务器角色,2)sp_dropsrvrolemember 用于从固定服务器角色中删除SQL Server登录或Windows用户或组。 语法:sp_dropsrvrolemember loginame=login,rolena

54、me=role 备注:只能使用 sp_dropsrvrolemember 从固定服务器角色中删除登录。不能从任何固定服务器角色中删除 sa 登录。 例10-21 本示例从 sysadmin 固定服务器角色中删除登录CorporateHelenS。 EXEC sp_dropsrvrolemember CorporateHelenS,sysadmin 3)sp_helpsrvrole 用于返回 SQL Server 固定服务器角色的列表。 语法:sp_helpsrvrole srvrolename = role 以下查询返回可用固定服务器角色列表:EXEC sp_helpsrvrole 4)sp_

55、helpsrvrolemember 用于返回有关 SQL Server 固定服务器角色成员的信息。 语法:sp_helpsrvrolemember srvrolename = role 例10-22 本示例将列出 sysadmin 固定服务器角色的成员。 EXEC sp_helpsrvrolemember sysadmin,返回本节首页,10.5.3 数据库角色,固定数据库角色在数据库级别定义以及每个数据库中都存在。db_owner和db_security管理员角色的成员可以管理固定数据库角色的成员身份。但是,只有db_owner角色可以将其他用户添加到db_owner固定数据库角色中。 打开

56、Management Studio,用鼠标单击“对象资源管理器”窗口中某数据库下“安全性”下的“角色”的“数据库角色”,显示的所有数据库角色,共有10个(包括public角色),具体名称及角色描述如下:1)db_accessadmin:可以为 Windows 登录帐户、Windows 组和 SQL Server 登录帐户添加或删除访问权限;2)db_backupoperator:可以备份该数据库;3)db_datareader:可以读取所有用户表中的所有数据;4)db_datawriter:可以在所有用户表中添加、删除或更改数据;5)db_ddladmin:可以在数据库中运行任何数据定义语言(

57、DDL)命令;6)db_denydatareader:不能读取数据库内用户表中的任何数据;7)db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据;8)db_owner:可以执行数据库的所有配置和维护活动;9)db_securityadmin:可以修改角色成员身份和管理权限。,返回本节首页,10.5.4 用户定义的角色,当一组用户执行SQL Server中一组指定的活动时,通过用户定义的角色可以轻松地管理数据库中的权限。在没有合适的Windows组,或数据库管理员无权管理Windows用户帐户的情况下,用户定义的角色为数据库管理员提供了与Windows组同等的灵活

58、性。 用户定义的角色只适用于数据库级别,并且只对创建时所在的数据库起作用。 1、数据库角色创建、修改与删除 数据库角色的创建、修改与删除操作可以通过Management Studio或T-SQL两种方法来操作: (1)在Management Studio中创建、修改或删除数据库角色 1)打开Management Studio,用鼠标单击“对象资源管理器”窗口某数据库引擎“数据库”“某具体数据库”“安全性”“角色”“数据库角色”,显示当前数据库的所有数据库角色,在“数据库角色”目录或某数据库角色上按鼠标右键,按快捷菜单中的“新建数据库角色”菜单项。在“数据库角色-新建”对话框中,指定角色名称与所

59、有者,按“确定”按钮即简单创建了新的数据库角色。 2)在某数据库角色上按鼠标右键,按快捷菜单中的“属性”菜单项。在“数据库角色属性”对话框中,查阅或修改角色信息,如指定新的所有者、安全对象、拥有的架构、角色成员等信息的修改等。 3)在某自定义数据库角色上按鼠标右键,按快捷菜单中的“删除”菜单项,启动“删除对象”来删除数据库角色。但要注意:角色必须为空时才能删除。,返回本节首页,10.5.4 用户定义的角色,(2)利用T-SQL创建、修改或删除数据库角色 数据库角色的创建、修改或删除,主要使用到的T-SQL命令有:CREATE ROLE、sp_addrole、ALTER ROLE、DROP ROLE、sp_droprole、sp_helprole等。下面简单说明它们的使用方法。 1)CREATE ROLE 在当前数据库中创建新数据库角色。 语法:CREATE ROLE role_name AUTHORIZATION owner_name 参数:role_name待创建角色的名称;AUTHORIZATION owner_name将拥有新角色的数据库用户或角色。如果未指定用户,则执行CREATE ROLE的用户将拥有该角色。 备注:角色是数据库级别的安全对象。创建角色后,使用GRANT、DENY和REVOKE配置角色的数据库

温馨提示

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

评论

0/150

提交评论