




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-3-6SQL Server 200512SQL Server 2005第第1010章章 SQL ServerSQL Server的安全管理的安全管理 n 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。n 系统安全保护措施是否有效是数据库系统的主要指系统安全保护措施是否有效是数据库系统的主要指标之一。标之一。n 数据库安全性和计算机系统安全性(包括操作系统、网络系统的安全性)是紧密联系、相互支持的。n 主要内容:主要内容:SQL Server 2005SQL Server 2005安全性概述、安全性概述、SQL SQL Server 2005Server
2、2005的验证模式、登录管理、用户管理、的验证模式、登录管理、用户管理、角色管理、权限管理及系统加密机制等。角色管理、权限管理及系统加密机制等。3SQL Server 2005目录目录 10.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 10.2 SQL Server 200510.2 SQL Server 2005的验证模式的验证模式 10.3 10.3 登录管理登录管理 10.4 10.4 用户管理用户管理 10.5 10.5 角色管理角色管理 10.6 10.6 权限管理权限管理 10.7 10.7 加密机制加密机制练习题练习题10 10
3、 上机实习上机实习9 9 4SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页nSQL Server 2005安全系统的构架建立在用户和用户用户和用户组组的基础上。nWindowsWindows中的用户和本地组及全局组中的用户和本地组及全局组可以映射到SQL Server 2005中的安全登录帐户安全登录帐户,也可以创建独立Windows帐户的安全登录帐户。nSQL ServerSQL Server提供了提供了2 2种安全管理模式:种安全管理模式:Windows Windows 身份验证模式身份验证模
4、式混合身份验证模式。混合身份验证模式。5SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页1 1、两个安全性阶段、两个安全性阶段 在SQL Server 2005中工作时,用户要经过两个安全性阶段:n身份验证:身份验证:每个用户必须通过登录帐户登录帐户建立自己的连接能力(身份验证),以获得对SQL Server 2005实例的访问权限。n权限验证(授权):权限验证(授权):该登录必须映射到用于控制在数据库中所执行的活动(权限验证)的 SQL Server SQL Server 用户帐户用户帐户。如果数
5、据库中没有用户帐户,则即使用户能够连接到 SQL Server 实例,也无法访问该数据库。 6SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页2 2、用户权限、用户权限当用户连接到当用户连接到SQL Server 2005SQL Server 2005实例后,他们可以执实例后,他们可以执行的活动由授予以下帐户的权限确定:行的活动由授予以下帐户的权限确定:用户安全帐户;用户安全帐户所属Windows组或角色层次结构;用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限。管理权限包括授
6、予或废除执行以下活动的用户权限:管理权限包括授予或废除执行以下活动的用户权限:处理数据和执行过程(对象权限对象权限);创建数据库或数据库中的项目(语句权限语句权限);利用授予预定义角色的权限(暗示性权限暗示性权限)。7SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页 3 3、视图安全机制、视图安全机制n视图作为安全机制:视图作为安全机制:SQL Server 2005通过限制可由用户使用的数据。n数据子集:数据子集:用户可以访问某些数据,进行查询和修改,但是表或数据库的其余部分是不可见的,也不能进行
7、访问。n视图授权:视图授权:对SQL Server 2005来说,无论在基础表(一个或多个)上的权限集合有多大,都必须授予、拒绝或废除访问视图中数据子集的权限。8SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页4 4、加密方法、加密方法 SQL Server 2005SQL Server 2005支持加密或可以加密的内容为:支持加密或可以加密的内容为:SQL Server 中存储的登录和应用程序角色密码;作为网络数据包而在客户端和服务器端之间发送的数据;SQL Server 2005中如下对象的定义
8、内容:存储过程、用户定义函数、视图、触发器、默认值、规则等。 例如:例如:SQL Server 2005SQL Server 2005可使用安全套接字层可使用安全套接字层(SSL)(SSL)加密在应加密在应用程序计算机和数据库计算机上的用程序计算机和数据库计算机上的 SQL Server SQL Server 实例之间传输实例之间传输的所有数据。的所有数据。9SQL Server 200510.1 SQL Server 200510.1 SQL Server 2005安全性概述安全性概述 返回本节首页5 5、审核活动、审核活动nSQL Server 2005提供审核功能,用以跟踪和记录每个SQ
9、L Server实例上已发生的活动(如成功和失败的记录)。nSQL Server 2005还提供管理审核记录的接口,即SQL事件探查器。n只有sysadmin固定安全角色的成员才能启用或修改审核,而且审核的每次修改都是可审核的事件。10SQL Server 200510.2 SQL Server 200510.2 SQL Server 2005的验证模式的验证模式 返回本节首页10.2.1 Windows10.2.1 Windows身份验证模式身份验证模式10.2.2 10.2.2 混合身份验证模式混合身份验证模式 ( (也称也称SQL ServerSQL Server身份验证模式身份验证模式
10、) )10.2.3 10.2.3 设置验证模式设置验证模式10.2.4 SQL Server10.2.4 SQL Server系统登录验证过程系统登录验证过程11SQL Server 200510.2 SQL Server 200510.2 SQL Server 2005的验证模式的验证模式 返回本节首页SQL Server 2005SQL Server 2005有两种安全验证模式:有两种安全验证模式:n Windows Windows 身份验证模式身份验证模式n 混合身份验证模式(也称混合身份验证模式(也称SQL Server SQL Server 身份验身份验证模式)。证模式)。12SQL
11、 Server 2005返回本节首页图图10-2 SQL Server10-2 SQL Server系统登录验证过程系统登录验证过程10.2.3 10.2.3 设置验证模式设置验证模式13SQL Server 2005返回本节首页nWindows 身份验证模式是指用户通过 Windows 用户帐户连接到SQL Server,即用户身份由Windows 系统来验证。n默认的身份验证模式,比混合验证模式安全得多。nWindows 身份验证使用 Kerberos 安全协议,通过强密码的复杂性验证提供密码策略强制,提供帐户锁定支持,并且支持密码过期。n用户和组是由Windows维护的,因此当用户进行连
12、接时,SQL Server将读取有关该用户在组中的成员资格信息。10.2.1 Windows10.2.1 Windows身份验证模式身份验证模式14SQL Server 2005返回本节首页使用使用WindowsWindows身份验证有如下特点:身份验证有如下特点:1)Windows验证模式下由Windows管理登录帐户,数据库管理员主要是使用该帐户;2)Windows有功能很强的工具与技术去管理用户的登录帐户;3)可以在SQL Server中增加用户组,可以使用用户组。 SQL Server支持的登录帐户,能在系统表syslogins或目录视图sys.syslogins中找到。10.2.1
13、Windows10.2.1 Windows身份验证模式身份验证模式15SQL Server 2005返回本节首页n 混合身份验证模式允许用户使用混合身份验证模式允许用户使用WindowsWindows身份和身份和SQL ServerSQL Server身份进行连接。身份进行连接。通过Windows登录帐户连接的用户可使用Windows验证的受信任连接。当用户使用指定登录名称和密码进行非信任连接时,SQL Server检测输入的登录名和密码是否与系统Syslogins表记录的情况相同,据此进行身份验证。如果不存在该用户的登录帐户,则身份验证失败。n 提供提供SQL ServerSQL Serve
14、r身份验证是为了考虑非身份验证是为了考虑非WindowsWindows客户兼容及客户兼容及向后兼容,早期向后兼容,早期SQL ServerSQL Server的应用程序可能要求使用的应用程序可能要求使用SQL SQL ServerServer登录和密码。登录和密码。10.2.2 10.2.2 混合身份验证模式混合身份验证模式( (也称也称SQL ServerSQL Server身份验证模式身份验证模式) )16SQL Server 2005返回本节首页混合身份验证模式有如下特点:混合身份验证模式有如下特点:1)混合模式允许非Windows客户、Internet客户和混合的客户组连接到SQL S
15、erver中;2)增加了完全性方面的选择。 如果必须选择“混合身份验证模式”并要求使用SQL登录以适应旧式应用程序,则必须为所有SQL帐户设置强密码强密码。这对于属于sysadmin角色的帐户(特别是sa帐户)尤其重要。10.2.2 10.2.2 混合身份验证模式混合身份验证模式( (也称也称SQL ServerSQL Server身份验证模式身份验证模式) )17SQL Server 2005返回本节首页在在Management StudioManagement Studio中的两种设置方法。中的两种设置方法。 方法之一:方法之一:1)打开Management Studio;2)在“视图”“
16、已注册的服务器”子窗口中要设置验证模式的服务器上按鼠标右键,然后在弹出的快捷菜单上选择“属性”,系统弹出如图10-1所示的“编辑服务器注册属性”窗口。10.2.3 10.2.3 设置验证模式设置验证模式18SQL Server 2005返回本节首页图图10-1 10-1 服务器注册属性服务器注册属性10.2.3 10.2.3 设置验证模式设置验证模式19SQL Server 2005返回本节首页方法之二:方法之二:1)在Management Studio对象资源管理器中,右键单击服务器,再单击“属性”。2)在“安全性”页上的“服务器身份验证”下,选择新的服务器身份验证模式,再单击“确定”。以上
17、两种方法,均需要重新启动SQL Server后,才能生效。10.2.3 10.2.3 设置验证模式设置验证模式20SQL Server 200510.2.3 10.2.3 设置验证模式设置验证模式21SQL Server 200510.3 10.3 登录管理登录管理 返回本节首页 10.3.1 系统管理员登录帐户 10.3.2 使用Management Studio管理SQL Server登录帐户 10.3.3 用T-SQL管理SQL Server登录帐户 10.3.4 管理登录的最新T-SQL命令22SQL Server 200510.3 10.3 登录管理登录管理 返回本节首页登录是基于服
18、务器级使用的用户名称。登录是基于服务器级使用的用户名称。在SQL Server中要成为数据库的用户,必须先成为服务器的登录。一个登录可以成为多个数据库的用户。n在Windows验证模式下,可以在Windows全局组或域用户中创建登录;n在SQL Server验证模式下,还可以在Windows的非全局组、非域用户甚至非Windows用户中创建登录。23SQL Server 2005返回本节首页nSQL Server有两个默认的系统管理员登录帐户:sasa和和BUILTINAdministratorsBUILTINAdministrators。nsasa是一个特殊的登录名,是SQL Server身
19、份验证机制下SQL Server的系统管理员,sa始终关联dbo数据库用户,并且没有为sa帐号指定口令,应尽快地给系统管理员帐户指定口令。nBUILTINAdministrators是Windows系统的系统管理员组。10.3.1 10.3.1 系统管理员登录帐户系统管理员登录帐户24SQL Server 2005返回本节首页在在Management StudioManagement Studio中能方便地创建、查看、修改、删除登录帐户。中能方便地创建、查看、修改、删除登录帐户。1.1.映射映射WindowsWindows登录帐户为登录帐户为SQL ServerSQL Server登录帐户登录
20、帐户在Management Studio中可以将一个Windows帐户或一个组映射成SQL Server登录帐户具体操作:选择“服务器”-“安全性”-“登录名”-“新建登录名”10.3.2 10.3.2 使用使用Management StudioManagement Studio管理管理SQL ServerSQL Server登录帐户登录帐户25SQL Server 200510.3.2 10.3.2 使用使用Management StudioManagement Studio管理管理SQL ServerSQL Server登录帐户登录帐户26SQL Server 2005在在Manageme
21、nt StudioManagement Studio中能方便地创建、查看、修改、删除登录帐户。中能方便地创建、查看、修改、删除登录帐户。2.创建SQL Server登录帐户10.3.2 10.3.2 使用使用Management StudioManagement Studio管理管理SQL ServerSQL Server登录帐户登录帐户在Management Studio中可以将一个Windows帐户或一个组映射成SQL Server登录帐户具体操作:选择“服务器”-“安全性”-“登录名”-“新建登录名”27SQL Server 200510.3.2 10.3.2 使用使用Managemen
22、t StudioManagement Studio管理管理SQL ServerSQL Server登录帐户登录帐户28SQL Server 2005返回本节首页3 3、在、在Management StudioManagement Studio中查看、修改或删除登录帐户中查看、修改或删除登录帐户方法如下:方法如下:1)启动Management Studio,分别展开“服务器”、“安全性”、“登录名”;2)单击“登录名”下的某一个登录帐户,在系统弹出菜单上点击“属性”,可进入“登录属性”对话框查看该登录帐户的信息。sp_helploginssp_helplogins系统存储过程也能提供有关每个数据
23、库中的登系统存储过程也能提供有关每个数据库中的登录及相关用户的信息。录及相关用户的信息。n sp_helplogins LoginNamePattern=login10.3.2 10.3.2 使用使用Management StudioManagement Studio管理管理SQL ServerSQL Server登录帐户登录帐户29SQL Server 2005返回本节首页 1 1、映射、映射WindowsWindows登录帐户为登录帐户为SQL ServerSQL Server登录帐户登录帐户 映射Windows登录帐户为SQL Server登录帐户的相关系统存储过程和命令有:nsp_gr
24、antlogin = CREATE LOGINnsp_denylogin = ALTER LOGINnsp_revokelogin = DROP LOGIN10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户30SQL Server 2005返回本节首页1 1)sp_grantloginsp_grantlogin:创建:创建 SQL Server SQL Server 登录名。登录名。其语法:sp_grantlogin loginame=login例如为例如为WindowsWindows用户用户CorporateBobJCorpo
25、rateBobJ. .创建创建SQL SQL ServerServer登录名,命令为:登录名,命令为:sp_grantlogin CorporateBobJ;改用改用CREATE LOGINCREATE LOGIN首选实现方法命令为:首选实现方法命令为:CREATE LOGIN CorporateBobJ FROM WINDOWS;10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户31SQL Server 2005返回本节首页2 2)sp_denyloginsp_denylogin:禁止:禁止 Windows Windows 用
26、户或组连接到用户或组连接到 SQL Server SQL Server 实例。实例。其语法:其语法:sp_denylogin loginame=login例例10-1 10-1 本例禁用本例禁用WindowsWindows用户用户CorporateCorporateBobJBobJ的的SQL SQL ServerServer登录名,命令为:登录名,命令为:sp_denylogin CorporateBobJ改用改用ALTER LOGINALTER LOGIN首选实现方法命令为:首选实现方法命令为:ALTER LOGIN CorporateGeorgeW DISABLE;10.3.3 10.3.
27、3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户32SQL Server 2005返回本节首页3 3)sp_revokeloginsp_revokelogin:从:从 SQL Server SQL Server 中删除使用中删除使用 CREATE CREATE LOGINLOGIN、sp_grantloginsp_grantlogin或或sp_denyloginsp_denylogin 为为 Windows Windows 用户或组用户或组创建的登录项。创建的登录项。其语法:其语法:sp_revokelogin loginame= login10-2
28、 10-2 本例删除本例删除 Windows Windows 用户用户 CorporateCorporateBobJBobJ 的登录项。的登录项。EXEC sp_revokelogin CorporateBobJ 或 EXEC sp_revokelogin CorporateBobJ改用改用DROP LOGINDROP LOGIN首选实现方法命令为:首选实现方法命令为:drop login CorporateBobJ10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户33SQL Server 2005返回本节首页2 2、管理、管理
29、SQL ServerSQL Server登录帐户登录帐户管理管理SQL ServerSQL Server登录帐户的相关系统存储过程和登录帐户的相关系统存储过程和命令有:命令有:nsp_addlogin = CREATE LOGINnsp_droplogin、sp_revokelogin = DROP LOGIN10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户34SQL Server 2005返回本节首页1 1)sp_addloginsp_addlogin:创建新的:创建新的 SQL Server SQL Server 登录,登
30、录,该登录允许用户使用该登录允许用户使用 SQL Server SQL Server 身份验证连接到身份验证连接到 SQL Server SQL Server 实例。实例。其语法为:其语法为:sp_addlogin loginame=login,passwd =password,defdb=database,deflanguage=language,sid=sid,encryptopt=encryption_option10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户35SQL Server 2005返回本节首页 例例10-3
31、 10-3 本例为用户本例为用户 Michael Michael 创建创建 SQL Server SQL Server 登录,密登录,密码为码为 B548bmM%f6B548bmM%f6,默认数据库为,默认数据库为AdventureWorksAdventureWorks,默认语言,默认语言为为us_englishus_english,SIDSID为为 0 x0123456789ABCDEF0123456789ABCDEF0 x0123456789ABCDEF0123456789ABCDEF。 EXEC sp_addlogin Michael, B548bmM%f6,AdventureWorks
32、,us_english, 0 x0123456789ABCDEF0123456789ABCDEF 改用改用CREATE LOGINCREATE LOGIN首选实现方法命令为:首选实现方法命令为: CREATE LOGIN Michael WITH PASSWORD=B548bmM%f6,DEFAULT_DATABASE=AdventureWorks,SID=0 x0123456789ABCDEF0123456789ABCDEF,DEFAULT_LANGUAGE=us_english10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐
33、户36SQL Server 2005返回本节首页2 2)sp_droploginsp_droplogin:删除:删除 SQL Server SQL Server 登录,禁止以登录,禁止以该登录名访问该登录名访问 SQL Server SQL Server 实例。实例。其语法:其语法:sp_droplogin loginame=login例例10-4 10-4 本例从本例从SQL ServerSQL Server实例中删除实例中删除MichaelMichael登录:登录:sp_droplogin Michael;改用改用DROP LOGINDROP LOGIN首选实现方法命令为:首选实现方法命令
34、为:drop login Michael10.3.3 10.3.3 用用T-SQLT-SQL管理管理SQL ServerSQL Server登录帐户登录帐户37SQL Server 2005返回本节首页管理登录的最新管理登录的最新T-SQLT-SQL命令为:命令为:CREATE LOGINCREATE LOGIN、ALTER LOGINALTER LOGIN、DROP LOGINDROP LOGIN。1 1、CREATE LOGINCREATE LOGIN创建新的SQL Server登录名。语法为:语法为:CREATE LOGIN login_name WITH | FROM :=WINDOW
35、S WITH ,.|CERTIFICATE certname|ASYMMETRIC KEY asym_key_name10.3.4 10.3.4 管理登录的最新管理登录的最新T-SQLT-SQL命令命令38SQL Server 2005返回本节首页例例10-5 10-5 创建映射到凭据的登录名创建映射到凭据的登录名: : 将创建将创建RLaszloRLaszlo登录名。此登录名将映登录名。此登录名将映射到射到 LaszloRLaszloR凭据。凭据。CREATE LOGIN RLaszlo WITH PASSWORD= 978(*Mmz0KWnkdo26985,CREDENTIAL=Laszl
36、oR例例10-6 10-6 从证书创建登录名从证书创建登录名: : 将从将从 master master 中的证书创建中的证书创建 FOgisuFOgisu 登录名。登录名。USE MASTER; CREATE CERTIFICATE FOgisuCert09 WITH SUBJECT = FOgisu certificate in master database, EXPIRY_DATE = 02/02/2009; GOCREATE LOGIN FOgisu FROM CERTIFICATE FOgisuCert09;例例10-7 10-7 从从WindowsWindows域帐户创建登录名域
37、帐户创建登录名: : 将从将从WindowsWindows域帐户创建域帐户创建 ADVWORKSfogisuADVWORKSfogisu 登录名。登录名。CREATE LOGIN ADVWORKSfogisu FROM WINDOWS10.3.4 10.3.4 管理登录的最新管理登录的最新T-SQLT-SQL命令命令39SQL Server 2005返回本节首页2 2、ALTER LOGINALTER LOGIN更改SQL Server登录帐户的属性。语法:语法:ALTER LOGIN login_name | WITH ,. 10.3.4 10.3.4 管理登录的最新管理登录的最新T-SQL
38、T-SQL命令命令40SQL Server 2005返回本节首页例例10-8 10-8 启用已禁用的登录,本例将启用启用已禁用的登录,本例将启用 KittiLertKittiLert 登录:登录:ALTER LOGIN KittiLert ENABLE;例例10-9 10-9 更改登录密码,本例将更改登录密码,本例将 KittiLertKittiLert 登录密码更改为登录密码更改为 3948wJ698FFF73948wJ698FFF7。ALTER LOGIN KittiLert WITH PASSWORD=3948wJ698FFF7;例例10-10 10-10 更改登录名称,本例将更改登录名
39、称,本例将KittiLertKittiLert 登录名称更改为登录名称更改为 MacraeSMacraeS。ALTER LOGIN KittiLert WITH NAME=MacraeS;例例10-11 10-11 将登录名映射到凭据,本例将登录名将登录名映射到凭据,本例将登录名MacraeSMacraeS映射到凭据映射到凭据Custodian04Custodian04。ALTER LOGIN MacraeS WITH CREDENTIAL=Custodian04;10.3.4 10.3.4 管理登录的最新管理登录的最新T-SQLT-SQL命令命令41SQL Server 2005返回本节首页
40、3. 3. 删除删除 SQL Server SQL Server 登录帐户。登录帐户。语法:语法:DROP LOGIN login_name,参数:参数:login_name 指定要删除的登录名。例例10-12 10-12 将删除登录名将删除登录名WilliJoWilliJo,命令为:,命令为:DROP LOGIN WilliJo10.3.4 10.3.4 管理登录的最新管理登录的最新T-SQLT-SQL命令命令42SQL Server 200510.4 10.4 用户管理用户管理 返回本节首页 10.4.1 登录名与数据库用户名的关系 10.4.2 使用Management Studio管理
41、数据库用户 10.4.3 用T-SQL管理数据库用户 10.4.4 改变数据库所有权43SQL Server 200510.4 10.4 用户管理用户管理 返回本节首页n 用户是基于数据库的名称,是和登录帐户用户是基于数据库的名称,是和登录帐户相关联的。相关联的。n 可以使用Management Studio和系统存储过程sp_grantdbaccess向数据库添加用户。n 只有数据库所有者及数据库管理员才有执只有数据库所有者及数据库管理员才有执行系统存储过程行系统存储过程sp_grantdbaccesssp_grantdbaccess的权力的权力44SQL Server 2005返回本节首页
42、n 登录名是访问登录名是访问SQL ServerSQL Server的通行证。的通行证。 每个登录名的定义存放在master数据库的表syslogins(登录名是服务器级的)中。 登录名本身并不能让用户访问服务器中的数据库资源。要访问具体数据库中的资源,还必须有该数据库的用户名。 新的登录创建以后,才能创建数据库用户。n 数据库用户用于数据库权限的控制。数据库用户用于数据库权限的控制。 定义信息存放在与其相关的数据库的sysusers表(用户名是数据库级的)中的,这个表包含了该数据库的所有用户对象以及和它们相对应的登录名的标识。 数据库用户在特定的数据库内创建,必须和某个登录名相关联。 用户名
43、没有密码和它相关联。 大多数情况下,用户名和登录名使用相同的名称。10.4.1 10.4.1 登录名与数据库用户名的关系登录名与数据库用户名的关系45SQL Server 2005返回本节首页n用户用一个登录名登录用户用一个登录名登录SQL ServerSQL Server,以数据库用户的身份访问,以数据库用户的身份访问服务器上的数据库。服务器上的数据库。登录帐户试图访问数据库时查找登录帐户试图访问数据库时查找sysuserssysusers中对应的用户名,或者是中对应的用户名,或者是GuestGuest用户,找不到将失败。用户,找不到将失败。一个登录帐户可以与服务器上的所有数据库进行关联,而
44、数据库用户一个登录帐户可以与服务器上的所有数据库进行关联,而数据库用户是一个登录帐户在某数据库中的映射。是一个登录帐户在某数据库中的映射。一个登录帐户可以映射到不同的数据库,产生多个数据库用户;但一个登录帐户在一个数据库至多只能映射一个数据库用户一个数据库用户只能映射到一个登录帐户。n允许数据库为每个用户对象分配不同的权限,这一特性为在组允许数据库为每个用户对象分配不同的权限,这一特性为在组内分配权限提供了最大的自由度与可控性。内分配权限提供了最大的自由度与可控性。10.4.1 10.4.1 登录名与数据库用户名的关系登录名与数据库用户名的关系46SQL Server 2005返回本节首页n管
45、理数据库用户包括对数据库用户的创建、查看、修改、删管理数据库用户包括对数据库用户的创建、查看、修改、删除等管理操作。除等管理操作。n创建数据库用户的两种方法:创建数据库用户的两种方法:(1)在创建登录帐户的同时指定该登录帐户允许访问的数据库,同时生成该登录帐户在数据库中的用户;(2)先创建登录帐户,再将登录帐户映射到某数据库,在其中创建同名用户名。10.4.2 10.4.2 使用使用Management StudioManagement Studio管理数据库用户管理数据库用户47SQL Server 2005返回本节首页1 1、在、在Management StudioManagement S
46、tudio中创建数据库用户中创建数据库用户1)启动Management Studio,分别展开“服务器”、“数据库”、“sales”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已有用户;2)右击“用户”文件夹,选择“新建数据库用户”,弹出出“数据库用户-新建”对话框;3)输入要创建的数据库用户的名字,然后在“登录名”对应的文本框中输入相对应的登录名,或点击“浏览”按钮,在系统中选择相应的登录名;4)按“确定”按钮,将新创建的数据库用户添加到数据库中。10.4.2 10.4.2 使用使用Management StudioManagement Studio管理数据库用户管理数据库用户
47、48SQL Server 200510.4.2 10.4.2 使用使用Management StudioManagement Studio管理数据库用户管理数据库用户49SQL Server 2005返回本节首页 2 2、在、在Management StudioManagement Studio中查看、修改或删除数据中查看、修改或删除数据库用户库用户1)启动Management Studio,分别展开“服务器”、“数据库”、“sales”、“安全性”、“用户”,在“用户”文件夹下能看到该数据库的已有用户;2)右击某要操作的用户,在系统弹出的快捷菜单中含有“属性”、“删除”等菜单项;3)若按“属
48、性”菜单项,可以查看或修改用户的权限信息,如“常规”中的“拥有架构”、“角色成员”;“安全对象”中的具体权限设置及“扩展属性”等;4)若按“删除”菜单项,可从数据库中删除该用户。10.4.2 10.4.2 使用使用ManagementStudioManagementStudio管理数据库用户管理数据库用户50SQL Server 2005返回本节首页 利用利用T-SQLT-SQL命令对数据库用户同样有创建、查看、命令对数据库用户同样有创建、查看、修改、删除等操作方法。修改、删除等操作方法。主要使用到的主要使用到的T-SQLT-SQL命令有命令有nCREATE USER、nALTER USER、
49、nDROP USER等。10.4.3 10.4.3 用用T-SQLT-SQL管理数据库用户管理数据库用户51SQL Server 2005返回本节首页1 1、用、用CREATE USERCREATE USER语句创建数据库用户语句创建数据库用户CREATE USER user_name FOR | FROM LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name | WITHOUT LOGIN WITH DEFAULT_SCHEMA = schema_name 注意:注意:n不能使用 CREATE USER
50、 创建 guest 用户,因为每个数据库中均已存在 guest 用户。n可通过授予 guest 用户 CONNECT 权限来启用该用户:GRANT CONNECT TO GUESTn可以在sys.database_principals目录视图中查看有关数据库用户的信息。10.4.3 10.4.3 用用T-SQLT-SQL管理数据库用户管理数据库用户52SQL Server 2005返回本节首页例例10-13 10-13 创建数据库用户:创建名为创建数据库用户:创建名为 AbolrousHazemAbolrousHazem 且具有密码的服务器登录名,然后在且具有密码的服务器登录名,然后在 Adv
51、entureWorksAdventureWorks 中创建对应的数据库用户中创建对应的数据库用户AbolrousHazemAbolrousHazem。CREATE LOGIN AbolrousHazem WITH PASSWORD = 340$Uuxwp7Mcxo7Khy; USE AdventureWorks; CREATE USER AbolrousHazem10.4.3 10.4.3 用用T-SQLT-SQL管理数据库用户管理数据库用户53SQL Server 2005返回本节首页2 2、用、用ALTER USERALTER USER语句创建数据库用户语句创建数据库用户ALTER USE
52、R user_name WITH ,.n := NAME = new_user_name | DEFAULT_SCHEMA = schema_name 例例10-16 10-16 更改数据库用户的名称,本例将数据库用户更改数据库用户的名称,本例将数据库用户AbolrousHazemAbolrousHazem的名称更改为的名称更改为 AbolrousAbolrous。 ALTER USER AbolrousHazem WITH NAME=Abolrous 例例10-17 10-17 更改用户的默认架构,本例将用户更改用户的默认架构,本例将用户AbolrousAbolrous的默认的默认架构更改为
53、架构更改为PurchasingPurchasing。 ALTER USER Abolrous WITH DEFAULT_SCHEMA=Purchasing;10.4.3 10.4.3 用用T-SQLT-SQL管理数据库用户管理数据库用户54SQL Server 2005返回本节首页3 3、数据库中删除数据库用户。、数据库中删除数据库用户。sp_revokedbaccess name_in_db=name 例例10-18 10-18 本例从当前数据库中删除映射到本例从当前数据库中删除映射到EdmondsLolanSoEdmondsLolanSo的数据库用户。的数据库用户。 EXEC sp_rev
54、okedbaccess EdmondsLolanSo;但请避免在新的开发工作中使用sp_revokedbaccessp_revokedbaccess 命令,因为后续版本中将不再支持它了,请改用DROP USERDROP USER。10.4.3 10.4.3 用用T-SQLT-SQL管理数据库用户管理数据库用户55SQL Server 2005返回本节首页n在在SQL Server 2005SQL Server 2005中,可以更改当前数据库的所有者。中,可以更改当前数据库的所有者。任何可以访问到SQL Server 的连接的用户(SQL Server登录帐户或Windows用户)都可成为数据库
55、的所有者。无法更改系统数据库的所有权。sp_changedbowner loginame=login,map=remap_alias_flag 10.4.4 10.4.4 改变数据库所有权改变数据库所有权56SQL Server 2005返回本节首页例例10-19 10-19 本例将登录名本例将登录名U1U1作为当前数据库的所有者,并映射到作为当前数据库的所有者,并映射到已分配给旧的数据库所有者的已分配给旧的数据库所有者的 U1U1现有别名。现有别名。 EXEC sp_changedbowner U1; - 当前数据库的所有者改为U1 go sp_helpuser; - 查看数据库用户及所有者
56、情况 EXEC sp_changedbowner sa -当前数据库的所有者改还为sa(设原为sa)10.4.4 10.4.4 改变数据库所有权改变数据库所有权57SQL Server 200510.5 10.5 角色管理角色管理 返回本节首页 10.5.1 public角色 10.5.2 固定服务器角色 10.5.3 数据库角色 10.5.4 用户定义的角色 10.5.5 应用程序角色58SQL Server 200510.5 10.5 角色管理角色管理 返回本节首页nSQL Server 2005数据库管理系统利用角色设置,管理用户的权限,大大减少了管理员的工作量。n角色的使用与Windo
57、ws组的使用很相似。n通过角色,可以将用户集中到一个单元中,然后对这个单元应用权限。对角色授予、拒绝或吊销权限时,将对其中的所有成员生效。n角色可以嵌套。嵌套的深度没有限制,但不允许循环嵌套。n数据库用户可以同时是多个角色的成员。59SQL Server 2005返回本节首页npublic角色在每个数据库(包括系统数据库master、msdb、tempdb和model)中都存在,它也是数据库角色成员。nPublic角色供提供数据库中用户的默认权限,不能删除。其功能相当于Windows环境中的Everyone组。n每个数据库用户都自动是此角色的成员,因此,无法在此角色中添加或删除用户。n当尚未对
58、某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象在public角色中对应的权限。10.5.1 public10.5.1 public角色角色60SQL Server 2005返回本节首页 固定服务器角色的作用域在服务器范围内。它们存在于数据库之外,固定服务器角色的每个成员都能够向该角色中添加其它登录。 打开Management Studio,用鼠标单击“对象资源管理器”窗口中某数据库引擎的“安全性”目录下的“服务器角色”,显示当前数据库服务器的所有服务器角色,共有8个,具体名称及角色描述如下: 1)Bulkadmin:固定服务器角色的成员可以运行 BULK INSERT
59、语句。 2)Dbcreator:固定服务器角色的成员可以创建、更改、删除和还原任何数据库。 3)diskadmin:固定服务器角色用于管理磁盘文件。 4)Processadmin:固定服务器角色的成员可以终止 SQL Server 实例中运行的进程。 5)securityadmin:固定服务器角色的成员将管理登录名及其属性。它们可以GRANT、DENY和REVOKE服务器级权限。也可以GRANT、DENY和REVOKE 数据库级权限。另外,它们可以重置SQL Server登录名的密码。 6)serveradmin:固定服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。 7)setupa
60、dmin:固定服务器角色的成员可以添加和删除链接服务器,并且也可以执行某些系统存储过程。 8)Sysadmin:固定服务器角色的成员可以在服务器中执行任何活动。默认情况下,Windows BUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。10.5.2 10.5.2 固定服务器角色固定服务器角色61SQL Server 2005返回本节首页 1 1、固定服务器角色的权限、固定服务器角色的权限n 固定服务器角色可以映射到SQL Server 2005包括的更为具体的权限。下表说明了固定服务器角色与权限的映射。固定服务器角色服务器级权限b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年南昌市数学三年级第一学期期末学业水平测试试题含解析
- 2024年湘西土家族苗族自治州永顺县数学三年级第一学期期末综合测试试题含解析
- 棕色中国风清明上河图
- 2025年行政管理语文能力规划试题及答案
- 完备复习资料执业医师考试试题及答案
- 自考行政管理课程总结试题及答案
- 微创手术技术执业医师考试试题及答案
- 执业护士考试科学护理论证题目试题及答案
- 自考行政管理科研方向试题及答案探讨
- 医学文献检索技巧试题及答案探讨
- 沥青路面用木质素纤维检测原始记录
- 货车司机简历
- 70岁以上老人考驾照,三力测试题库答案
- 2023年副主任医师(副高)-中医妇科学(副高)考试上岸历年考点真题演练含答案
- 医院预算业务流程图
- ALeader 阿立得 ALD515使用手册
- 政教主任国旗下的讲话稿-讲话稿
- 国学文化古典中国风模板
- 国民经济核算司精讲GDP核算
- 毕业论文PLC在机械手控制系统中的应用
- HY/T 0331-2022绿潮生态调查与监测技术规范
评论
0/150
提交评论