版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL Server 2005 SQL Server 2005 数据库数据库应用与开发应用与开发制作:姜桂洪制作:姜桂洪联系方式:联系方式:20222022年年2 2月月1313日日清华大学出版社. SQL Server 2005数据库应用与开发 第第10章章 SQL Server 2005的安全管理的安全管理清华大学出版社. SQL Server 2005数据库应用与开发 第第10章章 SQL Server 2005的安全管理的安全管理清华大学出版社. SQL Server 2005数据库应用与开发 SQL Server 2005的安全性机制主要包括以下的安全性机制主要包括以下5个方面的内容
2、:个方面的内容:nSQL Server 2005客户机的安全机制。客户机的安全机制。n网络传输的安全机制。网络传输的安全机制。nSQL Server 2005服务器的安全机制。服务器的安全机制。n数据库的的安全机制。数据库的的安全机制。n数据对象的安全机制。数据对象的安全机制。清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念若要在若要在SQL Server 2005的安全机制下,首先需的安全机制下,首先需要了解下面常用的基本概念或术语。要了解下面常用的基本概念或术语。(1)主体()主体(Principal)。主体是可以请求对)。主体是可以请求对SQ
3、L Server资源的访问权限的用户、组和进资源的访问权限的用户、组和进程。主体有几个共同的特征。每个主体都有程。主体有几个共同的特征。每个主体都有自己的安全标识号(自己的安全标识号(SID)。主体可以是主)。主体可以是主体的集合(比如数据库角色或体的集合(比如数据库角色或Windows组)组)或不可分割的主体(比如本地登录或域登或不可分割的主体(比如本地登录或域登录)。每个主体有一个作用域,作用域基于录)。每个主体有一个作用域,作用域基于定义主体的级别。定义主体的级别。主体范围主体范围主体主体Windows级别的级别的主体主体Windows域登录、域登录、Windows本本地登录地登录 SQ
4、L Server级别级别的主体的主体SQL Server登录、登录、SQL Server角色角色数据库级别的主数据库级别的主体体数据库用户、数据库角色、应数据库用户、数据库角色、应用程序角色用程序角色清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念(2)安全对象。安全对象是)安全对象。安全对象是 SQL Server 2005数据库引擎授权系统控数据库引擎授权系统控制对其进行访问的资源。通过创建制对其进行访问的资源。通过创建可以为自己设置安全性的名为可以为自己设置安全性的名为“范范围围”的嵌套层次结构,可以将某些的嵌套层次结构,可以将某些安全对象包
5、含在其他安全对象中。安全对象包含在其他安全对象中。安全对象范围包括服务器、数据库、安全对象范围包括服务器、数据库、架构和对象。架构和对象。安全对象范围安全对象范围安全对象列表安全对象列表服务器服务器端点、登录用户、数据库端点、登录用户、数据库数据库数据库用户、角色、应用程序角色、程序集、消用户、角色、应用程序角色、程序集、消息类型、路由、服务、远程服务绑定、息类型、路由、服务、远程服务绑定、 全文目录、证书、非对称密钥、对称密钥全文目录、证书、非对称密钥、对称密钥、约定、架构、约定、架构架构架构类型、类型、XML 架构集合、对象架构集合、对象 对象对象聚合、约束、函数、过程、队列、统计信息、聚
6、合、约束、函数、过程、队列、统计信息、同义词、表、视图同义词、表、视图清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念(3)用户、数据库用户、账户、账号、登录名和用户、数据库用户、账户、账号、登录名和密码。密码。n用户用户是指能够在是指能够在SQL Server 2005安全机制下,访问数据安全机制下,访问数据库对象中的数据的操作员或客户。用户若要访问数据库库对象中的数据的操作员或客户。用户若要访问数据库对象,必须获得管理员分配的对象,必须获得管理员分配的账号账号和和密码密码。从从SQL Server 2005管理系统的角度来看,用户就是一组匹配的
7、管理系统的角度来看,用户就是一组匹配的账户和密码。账户和密码。n账户和账号账户和账号是一个概念的不同说法,在服务器中的账户是一个概念的不同说法,在服务器中的账户又叫又叫登录名登录名(Login),因此访问服务器也称为登录服),因此访问服务器也称为登录服务器。服务器的登录名可以映射到数据库中成为务器。服务器的登录名可以映射到数据库中成为数据库数据库用户用户。一个登录名可以映射多个数据库用户,而一个用一个登录名可以映射多个数据库用户,而一个用户只能映射一个登录名。户只能映射一个登录名。清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念(4)角色)角色(r
8、oles)。角色是。角色是SQL Server 2005中管中管理权限相近的安全账户的集合,相当于理权限相近的安全账户的集合,相当于Windows域中的组。域中的组。(5)权限。)权限。 权限是权限是SQL Server 2005安全性的最安全性的最后一个级别,实际上是安全机制的设计者分配后一个级别,实际上是安全机制的设计者分配给某一个用户(或角色)访问数据库时,对数给某一个用户(或角色)访问数据库时,对数据对象的可以进行的操作集合。要拥有对据对象的可以进行的操作集合。要拥有对SQL Server 2005上的安全对象的访问权限,主体必上的安全对象的访问权限,主体必须具有在在数据对象上执行操作
9、的权限。须具有在在数据对象上执行操作的权限。清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念(6)身份验证与授权。身份验证)身份验证与授权。身份验证(Authentication)是是SQL Server 2005系统标识用户或进程的过程,系统标识用户或进程的过程,SQL Server 2005 中有两种身份验证方式:中有两种身份验证方式:nWindows身份验证模式和混合身份验证模式。身份验证模式和混合身份验证模式。客户端自身必须通过服务器的身份验证后才客户端自身必须通过服务器的身份验证后才可以请求其他资源。可以请求其他资源。n授权授权(Auth
10、orization)是授予通过身份验证的是授予通过身份验证的用户或进程以访问或修改资源的指定权限的用户或进程以访问或修改资源的指定权限的过程。过程。清华大学出版社. SQL Server 2005数据库应用与开发 10.1.3查询权限查询权限n用户可以利用用户可以利用fn_my_permissions函数查询用户函数查询用户的有效权限,该函数一般返回调用对方服务器的有效权限,该函数一般返回调用对方服务器的有效权限列表。的有效权限列表。nfn_my_permissions函数语法格式如下:函数语法格式如下:fn_my_permissions (securable , securable_clas
11、s) fn_my_permissions 函数的返回列如表函数的返回列如表10.1所示所示. 列名列名类型类型说明说明entity_namesysname对其有效授予所列权限的安全对其有效授予所列权限的安全对象的名称。对象的名称。 subentity_namesysname如果安全对象具有列,则为列如果安全对象具有列,则为列名;否则为名;否则为 NULL。 permission_namenvarchar权限的名称。权限的名称。清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念例例10.1 列出对服务器的有效权限。列出对服务器的有效权限。程序代码如下:
12、程序代码如下:USE master GOSELECT * FROM fn_my_permissions (NULL, SERVER); GO例例10.2 列出对数据库列出对数据库test01的有效权限的有效权限程序代码如下:程序代码如下:USE test01GOSELECT * FROM fn_my_permissions (NULL, DATABASE);GO清华大学出版社. SQL Server 2005数据库应用与开发 10.1.1基本概念基本概念例例10.3 列出对表的有效权限。列出对表的有效权限。分析:以下示例返回调用方对分析:以下示例返回调用方对teaching数据库内数据库内db
13、o架构中架构中teacher的有效权限的列表。的有效权限的列表。程序代码如下:程序代码如下:USE teaching;GOSELECT * FROM fn_my_permissions(dbo.teacher, OBJECT) ORDER BY subentity_name, permission_name ; 例例10.4列出一个用户的有效权限列出一个用户的有效权限分析:以下示例返回数据库用户分析:以下示例返回数据库用户dbo对对 teaching 数据库内数据库内dbo架构中架构中score表的有效权限的列表。调用方需要对用户表的有效权限的列表。调用方需要对用户dbo具有具有 IMPERS
14、ONATE 权限。权限。程序代码如下:程序代码如下:EXECUTE AS USER = dbo;SELECT * FROM fn_my_permissions(dbo.score, OBJECT) ORDER BY subentity_name, permission_name ; REVERT;GO清华大学出版社. SQL Server 2005数据库应用与开发 n服务器访问权限是属于服务器访问权限是属于SQL Server的第的第1个安全层个安全层次,该权限决定是否允许客户端访问服务器,这个次,该权限决定是否允许客户端访问服务器,这个安全级别总是由安全级别总是由DBA负责。负责。nSQL
15、Server 2005支持用支持用Windows或或SQL Server身身份验证模式来验证客户端的身份。份验证模式来验证客户端的身份。10.2.1 SQL Server 2005的验证模式的验证模式nSQL Server 2005的身份验证基于的身份验证基于SQL Server存储在主数存储在主数据库中的登录名和密码。客户端必须提供登录名和密码,据库中的登录名和密码。客户端必须提供登录名和密码,才能获得授权访问服务器。才能获得授权访问服务器。nSQL Server的安全性是和的安全性是和Windows操作系统集成在一起操作系统集成在一起的,因此的,因此SQL Server提供了两种确认用户的
16、验证模式:提供了两种确认用户的验证模式:Windows验证和混合验证模式。验证和混合验证模式。 清华大学出版社. SQL Server 2005数据库应用与开发 10.2.1 SQL Server 2005的验证模式的验证模式1. Windows身份验证模式身份验证模式nSQL Server数据库系统通常运行在数据库系统通常运行在Windows服务器平服务器平台上,其本身就具备管理登录、验证用户合法性的能台上,其本身就具备管理登录、验证用户合法性的能力,因此力,因此Windows 验证模式正是利用了这一用户安验证模式正是利用了这一用户安全性和账号管理的机制,允许全性和账号管理的机制,允许SQL
17、 Server也可以使用也可以使用Windows的用户账户和密码。的用户账户和密码。n在这种模式下,用户只需要通过在这种模式下,用户只需要通过Windows的验证,就的验证,就可以连接到可以连接到SQL Server,而,而SQL Server本身也就不需本身也就不需要管理一套登录数据。要管理一套登录数据。nWindows身份验证通常被认为更安全和更易维护。身份验证通常被认为更安全和更易维护。Windows身份验证对于用户和管理员来说都比较容易身份验证对于用户和管理员来说都比较容易管理。管理。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.1 SQL Server
18、2005的验证模式的验证模式2. 混合身份验证模式混合身份验证模式n混合验证模式允许以混合验证模式允许以SQL Server验证模式或者验证模式或者Windows验验证模式来进行验证。证模式来进行验证。n混合验证模式先将客户机的账号和密码与混合验证模式先将客户机的账号和密码与SQL Server 2005数据库中存储的账号和密码进行比较,如果符合就通数据库中存储的账号和密码进行比较,如果符合就通过验证;如果不符合,则再和过验证;如果不符合,则再和Windows中存储的账号和密中存储的账号和密码进行比较,如果符合就通过验证。码进行比较,如果符合就通过验证。nMicrosoft公司在公司在SQL
19、Server 2005中对中对SQL Server身份验身份验证作了一些改进。例如,证作了一些改进。例如,SQL Server实例可以设置为需要实例可以设置为需要安全性更强的口令,以及在指定时间段后要求更新口令。安全性更强的口令,以及在指定时间段后要求更新口令。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.1 SQL Server 2005的验证模式的验证模式3更新服务器的身份验证机制的步骤更新服务器的身份验证机制的步骤(1)在)在“对象资源管理器对象资源管理器”中,右击中,右击SQL Server 2005数据库实例,在弹出的快捷菜单中,选择数据库实例,在弹出的
20、快捷菜单中,选择“属属性性”命令。命令。(2)在)在“服务器属性服务器属性”对话框中选择对话框中选择“安全性安全性”选选项卡。项卡。(3)在)在“服务器身份验证服务器身份验证”区域可以设置服务器身区域可以设置服务器身份验证模式,然后单击份验证模式,然后单击“确定确定”按钮即可完成设置。按钮即可完成设置。(4)重启)重启SQL Server 2005,即可改变身份验证模式。,即可改变身份验证模式。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.2服务器角色服务器角色nSQL Server 2005的安全体系结构中包括含的安全体系结构中包括含有特定隐含权限的两类预定义的
21、角色:服有特定隐含权限的两类预定义的角色:服务器角色和固定数据库角色。务器角色和固定数据库角色。n服务器角色是执行服务器管理操作的具有服务器角色是执行服务器管理操作的具有相近权限的用户集合。根据相近权限的用户集合。根据SQL Server的的管理任务和重要性等级来把具有管理任务和重要性等级来把具有SQL Server管理职能的用户划分到不同的服务管理职能的用户划分到不同的服务器角色,每一个角色所具有的管理器角色,每一个角色所具有的管理SQL Server的权限都是的权限都是SQL Server内置的。内置的。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.2服务器角
22、色服务器角色n服务器角色是服务器级别的主体,可以成服务器角色是服务器级别的主体,可以成为服务器角色的成员以控制服务器作用域为服务器角色的成员以控制服务器作用域中的可保护对象。表中的可保护对象。表10.5列出了列出了SQL Server 2005默认创建的服务器角色及其功默认创建的服务器角色及其功能。能。nSQL Server 2005的服务器角色在实例中的的服务器角色在实例中的位置如图位置如图10.8所示。所示。服务器角色服务器角色权限权限sysadmin 拥有拥有SQL Server所有的权限所有的权限serveradmin管理管理SQL Server服务器的配置选项,关闭服务器服务器的配置
23、选项,关闭服务器diskadmin管理磁盘文件管理磁盘文件processadmin管理管理SQL Server系统中运行的进程系统中运行的进程securityadmin审核审核SQL Server系统登录,管理系统登录,管理CREATE DATABASE权限、读取错误日志和修改密码权限、读取错误日志和修改密码setupadmin管理链接服务器和启动过程管理链接服务器和启动过程dbcreator创建、修改和删除数据库创建、修改和删除数据库bulkadmin可以执行可以执行BULK INSERT语句,进行大容量操作语句,进行大容量操作清华大学出版社. SQL Server 2005数据库应用与开发
24、 10.2.3管理登录名管理登录名登录名就是可以访问登录名就是可以访问SQL Server数据库系统的账户。数据库系统的账户。1利用利用SQL Server Management Studio创建登录名创建登录名(1)启动)启动SQL Server Management Studio工具后,工具后,在在“对象资源管理器对象资源管理器”下,右击下,右击“安全性安全性”下的下的“登录名登录名”节点,在弹出的快捷菜单中选择节点,在弹出的快捷菜单中选择“新新建登录名建登录名”命令。命令。(2)在)在“登录名登录名-新建新建”界面上,设置登录名界面上,设置登录名(te_login)、身份验证模式()、身
25、份验证模式(SQL Server身份验身份验证)、密码(证)、密码(123456)、默认数据库()、默认数据库(teaching)和语言的类型等,如图和语言的类型等,如图10.9所示。所示。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名1利用利用SQL Server Management Studio创建登录名创建登录名(3)可以选择)可以选择“服务器角色服务器角色”选项卡,配置登录的选项卡,配置登录的服务器角色,如服务器角色,如sysadmin。(4)也可以选择其他选项卡进行)也可以选择其他选项卡进行“用户映射用户映射”、“安全对象安全对象
26、”和和“状态状态”的配置。的配置。(5)然后单击)然后单击“确定确定”按钮即可完成登录名的创建。按钮即可完成登录名的创建。(6)可以在)可以在“对象资源管理器对象资源管理器”下查看新建登录名下查看新建登录名如图如图10.10所示。所示。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名1利用利用SQL Server Management Studio创建登录名创建登录名(7)右击登录名)右击登录名te_login,在弹出的快捷菜单中,在弹出的快捷菜单中,选择选择“编写登录脚本为:编写登录脚本为:”|“CREATE到到”|“新查新查询编辑器窗口询编
27、辑器窗口”命令,系统将创建登录名的过程命令,系统将创建登录名的过程以脚本形式保存下来。由此可知利用以脚本形式保存下来。由此可知利用Transact-SQL语句创建登录名的方法。语句创建登录名的方法。脚本中的主要代码如下:脚本中的主要代码如下:CREATE LOGIN te_login WITH PASSWORD=N123456, DEFAULT_DATABASE=teaching, DEFAULT_LANGUAGE=简体中文简体中文, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFFGOEXEC sys.sp_addsrvrolemember loginame =
28、Nte_login, rolename = NsysadminGOALTER LOGIN te_login DISABLE清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名2测试登录名测试登录名下面使用下面使用SQL Server Management Studio测试新登录测试新登录名是否成功连接服务器。名是否成功连接服务器。(1)右击)右击SQL Server 中的实例,在快捷菜单中选择中的实例,在快捷菜单中选择“连接连接”命令。命令。(2)在弹出的)在弹出的“连接服务器连接服务器”界面中,选择界面中,选择SQL Serve身份验证,然后输入
29、登录名和密码,如图身份验证,然后输入登录名和密码,如图10.11所示。所示。(3)单击)单击“连接连接”按钮可以测试连接是否成功。如图按钮可以测试连接是否成功。如图10.12所示。所示。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名3利用系统过程管理登录名利用系统过程管理登录名利用利用master数据库下的下列系统存储过程数据库下的下列系统存储过程sp_addlogin、sp_droplogin、 sp_password也可以用于管理也可以用于管理SQL Server的登录名。的登录名。(1)sp_addlogin 。系统过程。系统过程sp_
30、addlogin可以用于创可以用于创建建SQL Server登录名,用户可以通过该登录访问登录名,用户可以通过该登录访问SQL Server系统,其语法过程如下:系统,其语法过程如下:sp_addlogin login_name ,passwd,database ,language 例例10.5 利用系统过程利用系统过程sp_addlogin向向“职员管理职员管理”数据库创建数据库创建3个新登录。个新登录。sp_addlogin rose, aabbcc, teachingGOsp_addlogin hanry, aabbcc, teaching GOsp_addlogin pool, aab
31、bcc, teaching GO清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名3利用系统过程管理登录名利用系统过程管理登录名(2)sp_droplogin。利用系统存储过程。利用系统存储过程sp_droplogin可以删除一个现有的可以删除一个现有的SQL Server登录名,登录名,sp_droplogin系统过程可以通过系统表系统过程可以通过系统表syslogins中删中删除相应的行来达到删除登录名的目的。除相应的行来达到删除登录名的目的。需要注意的是需要注意的是,正在访问的正在访问的SQL Server 2005系统中的任系统中的任何一
32、个数据库的何一个数据库的SQL Server登录名是不能被删除的。登录名是不能被删除的。若要删除某登录名,必须先利用系统过程若要删除某登录名,必须先利用系统过程sp_revokedbaccess删除相应的数据库用户。删除相应的数据库用户。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名3利用系统过程管理登录名利用系统过程管理登录名(3)sp_password。系统存储过程。系统存储过程sp_password为为SQL Server登录创建密码,或替换现有的口令密码。登录创建密码,或替换现有的口令密码。 利用该过程用户可以随时修改自己的口令密码,
33、系利用该过程用户可以随时修改自己的口令密码,系统管理员通过统管理员通过sp_password可以更改任何口令密码。可以更改任何口令密码。 例如:例如: sp_password aabbcc, 112233, hanry 清华大学出版社. SQL Server 2005数据库应用与开发 10.2.3管理登录名管理登录名4.密码的复杂性策略密码的复杂性策略SQL Server 2005的密码复杂性策略是指一系列限制密码复杂性的密码复杂性策略是指一系列限制密码复杂性的规则。密码复杂性策略通过增加可能密码的数量来阻止强的规则。密码复杂性策略通过增加可能密码的数量来阻止强力攻击。实施密码复杂性策略时,新
34、密码必须符合以下原则:力攻击。实施密码复杂性策略时,新密码必须符合以下原则:n长度至少有长度至少有6个字符,最多可包含个字符,最多可包含 128 个字符。个字符。n密码包含以下密码包含以下4类字符中的类字符中的3类:类: 英文大写字母英文大写字母 (A - Z) 、英文小写字母英文小写字母 (a - z) 、10个基本数字个基本数字 (0 - 9) 、非字母数字、非字母数字(例如:(例如:!、$、# 或或 %)n字典中查不到,且不是命令名、人名或用户名,不得包含字典中查不到,且不是命令名、人名或用户名,不得包含全部或部分用户名。全部或部分用户名。n定期更改且与以前的密码明显不同的密码。定期更改
35、且与以前的密码明显不同的密码。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.4管理凭据管理凭据 凭据是包含连接到凭据是包含连接到 SQL Server 之外的资源所需的身之外的资源所需的身份验证信息的记录。份验证信息的记录。 1凭据的构成凭据的构成n大多数凭据包含一个大多数凭据包含一个 Windows 登录名和密码。通过凭据,登录名和密码。通过凭据,使用使用 SQL Server身份验证连接到身份验证连接到 SQL Server 的用户可以的用户可以连接到连接到 Windows 或其他或其他 SQL Server 以外的资源。以外的资源。n 在创建凭据之后,可以将
36、凭据映射到登录名。单个凭据在创建凭据之后,可以将凭据映射到登录名。单个凭据可映射到多个可映射到多个SQL Server 登录名,但是一个登录名,但是一个SQL Server 登录名只能映射到一个凭据。登录名只能映射到一个凭据。n系统凭据是自动创建的,并与特定端点关联,其名称以系统凭据是自动创建的,并与特定端点关联,其名称以 # 开头。开头。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.4管理凭据管理凭据 2. 创建凭据的过程创建凭据的过程下面介绍创建凭据平局下面介绍创建凭据平局pingju的一般步骤。的一般步骤。(1)在)在“对象资源管理器对象资源管理器”下,右击
37、下,右击“安全性安全性”下的下的“凭据凭据”节点,在弹出的快捷菜单中选择节点,在弹出的快捷菜单中选择“新建凭新建凭据据”命令命令。(2)在弹出的)在弹出的“新建凭据新建凭据”对话框中,输入凭据名称对话框中,输入凭据名称(pingju)、标识()、标识(JIANG-N9VJWXJ11 Administrator)和密码,如图)和密码,如图10.13所示,即可完成所示,即可完成创建凭据的操作。创建凭据的操作。清华大学出版社. SQL Server 2005数据库应用与开发 10.2.4管理凭据管理凭据 2. 创建凭据的过程创建凭据的过程例例10.6 在在 sys.credentials 目录视图中
38、查看凭据的有关目录视图中查看凭据的有关信息。信息。分析:用户可以利用分析:用户可以利用SELECT语句在语句在sys.credentials目目录视图中查看凭据的相关信息。录视图中查看凭据的相关信息。程序代码如下:程序代码如下:SELECT * FROM sys.credentials例例10.7 创建映射到凭据的登录名创建映射到凭据的登录名分析:创建一个登录名分析:创建一个登录名USER1,然后将其,然后将其映射到凭据映射到凭据pingju。程序代码如下:程序代码如下:CREATE LOGIN USER1 WITH PASSWORD=1A2B3C4D CREENTIAL=pingjuGO清华
39、大学出版社. SQL Server 2005数据库应用与开发 访问一个服务器并不意味着用户自动拥有数访问一个服务器并不意味着用户自动拥有数据库的访问权限。据库的访问权限。DBA以下列方式之一指定一个以下列方式之一指定一个数据库登录用户:数据库登录用户:n在每个用户需要访问的数据库中,创建一个与在每个用户需要访问的数据库中,创建一个与用户登录名对应的数据库用户。用户登录名对应的数据库用户。n将数据库配置为把登录名或数据库用户作为数将数据库配置为把登录名或数据库用户作为数据库角色的成员对待的方式,使得用户能够继据库角色的成员对待的方式,使得用户能够继承角色中的所有权限。承角色中的所有权限。n将登录
40、名设置为使用默认账户之一:将登录名设置为使用默认账户之一:guest或或dbo(数据库拥有者)。(数据库拥有者)。一旦授予了对数据库的访问权限,用户就可以看到一旦授予了对数据库的访问权限,用户就可以看到所有数据库对象。所有数据库对象。 清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色数据库角色是在数据库级别定义的,并且存在于每数据库角色是在数据库级别定义的,并且存在于每个数据库中,是对数据库对象操作权限的集合。个数据库中,是对数据库对象操作权限的集合。SQL Server 2005的数据库角色分为固定数据库角的数据库角色分为固定数据库角色和用
41、户自定义数据库角色。后者又分为标准角色和用户自定义数据库角色。后者又分为标准角色和应用程序角色两种。色和应用程序角色两种。1固定数据库角色固定数据库角色n固定数据库角色是数据库级别的主体,可以管理固定数据库角色是数据库级别的主体,可以管理数据库作用域的可保护对象,其中,数据库作用域的可保护对象,其中,public公有公有角色比较特殊。角色比较特殊。n每个被授予对数据库的访问权限的用户会自动成每个被授予对数据库的访问权限的用户会自动成为公有角色的成员,并继承授予它的权限。为公有角色的成员,并继承授予它的权限。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角
42、色数据库角色1固定数据库角色固定数据库角色一般情况下,一般情况下,public角色允许用户做以下操作:角色允许用户做以下操作:npublic角色为数据库中所有用户保持默认权限。当角色为数据库中所有用户保持默认权限。当尚未对某个用户授予或拒绝对安全对象的特定权限尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的时,则该用户将继承授予该安全对象的 public 角色角色的权限。的权限。n通过通过guest账户访问任意数据库。账户访问任意数据库。n用某些系统存储过程显示用某些系统存储过程显示master数据库中的信息,数据库中的信息,查看系统表。查看系统表。n执行一些不需
43、要权限的语句,例如执行一些不需要权限的语句,例如PRINT。表表10.6具体列出了所有数据库角色的功能。具体列出了所有数据库角色的功能。固定服务器角色固定服务器角色 功能简介功能简介public维护全部默认权限维护全部默认权限db_denydatawriter不能对数据库中的任何表执行增加、不能对数据库中的任何表执行增加、修改和删除数据操作修改和删除数据操作db_denydatareader不能读取数据库中任何表中的数据不能读取数据库中任何表中的数据db_datawriter 能够增加、修改和删除表中的数据能够增加、修改和删除表中的数据db_datareader能且仅能对数据库中的任何表执行能
44、且仅能对数据库中的任何表执行SELECT操作,读取所有表的信息操作,读取所有表的信息db_backupoperator可以发出可以发出DBCC、CHECKPOINT和和BACKUP语句语句db_securityadmin可以管理全部权限、对象所有权、角可以管理全部权限、对象所有权、角色和用户色和用户db_addladmin可以发出可以发出ALL DDL但不能使用但不能使用GRANT、REVOKE或或DENY语句语句db_accessadmin可以增加或者删除用户标识可以增加或者删除用户标识db_owner数据库的所有者,可以对所拥有的数据库的所有者,可以对所拥有的数据库执行任何操作数据库执行任
45、何操作清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色1固定数据库角色固定数据库角色对于某个数据库而言,每一个数据库角色都有它对于某个数据库而言,每一个数据库角色都有它特定的许可。可以用系统过程特定的许可。可以用系统过程sp_dbfixdrolepermission来查看每一个固定数据来查看每一个固定数据库角色的许可。如果不指定库角色的许可。如果不指定role的值,所有固定的值,所有固定服务器角色的许可都会显示出来。服务器角色的许可都会显示出来。这个存储过程的语法结构为:这个存储过程的语法结构为:sp_dbfixedrolepermissio
46、n rolename=role例如:例如: EXEC sp_dbfixedrolepermission db_ddladmin清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色2. 自定义数据库角色自定义数据库角色可以创建一个数据库角色,并赋予对数据库作用域和架构可以创建一个数据库角色,并赋予对数据库作用域和架构作用域的可保护对象的访问权限。一个用户可以是若作用域的可保护对象的访问权限。一个用户可以是若干个数据库角色的成员。干个数据库角色的成员。创建角色的步骤如下创建角色的步骤如下(1)在)在“对象资源管理器对象资源管理器”下,展开数据库下,展
47、开数据库teaching,右击右击“安全性安全性”|“角色角色”,在弹出的快捷菜单中选择,在弹出的快捷菜单中选择“新建新建”|“数据库角色数据库角色”命令。命令。(2)在弹出的)在弹出的“数据库角色数据库角色-新建新建”窗体中的窗体中的“常规常规”选选项卡中,输入角色名项卡中,输入角色名jsj09、所有者名、所有者名te_login,并选择,并选择架构,如图架构,如图10.15所示。所示。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色2. 自定义数据库角色自定义数据库角色创建角色的步骤如下创建角色的步骤如下(3)在)在“安全对象安全对象”选
48、项卡中,单击选项卡中,单击“添加添加”按钮,在弹出的按钮,在弹出的“添加对象添加对象”对话框中,选择对话框中,选择其中一项,如其中一项,如“特定对象。特定对象。(4)单击)单击“确定确定”按钮,按照示例提示选择数按钮,按照示例提示选择数据对象。据对象。(5)单击)单击“确定确定”按钮,返回如图按钮,返回如图10.18所示的所示的“安全对象安全对象”选项卡中为表设置权限后。单击选项卡中为表设置权限后。单击“确定确定”按钮,数据库角色按钮,数据库角色jsj09创建完毕。创建完毕。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色3. 应用程序角色应
49、用程序角色应用程序角色应用程序角色(Application role)是在没有成员的是在没有成员的数据库级别上定义的,数据库级别上定义的,Microsoft创建应用程序创建应用程序角色目的是防止用户直接访问底层表数据。应角色目的是防止用户直接访问底层表数据。应用程序角色可以加强对某一个特别的应用程序用程序角色可以加强对某一个特别的应用程序的安全性。的安全性。例如,某公司职员只是用某个特定的应用程序来例如,某公司职员只是用某个特定的应用程序来修改员工数据信息,那么就可以为其建立应用修改员工数据信息,那么就可以为其建立应用程序角色。程序角色。清华大学出版社. SQL Server 2005数据库应
50、用与开发 10.3.1 数据库角色数据库角色3. 应用程序角色应用程序角色应用程序角色和所有其他的角色都有很大不同。应用程序角色和所有其他的角色都有很大不同。n应用程序角色没有成员,因为它们只是应用程序中使应用程序角色没有成员,因为它们只是应用程序中使用,所以不需要直接对某些用户赋予权限。用,所以不需要直接对某些用户赋予权限。n必须为应用程序角色设计一个密码以激活它。当应用必须为应用程序角色设计一个密码以激活它。当应用程序角色被应用程序的会话激活以后,会话就会失去程序角色被应用程序的会话激活以后,会话就会失去所有属于登录、用户账号或角色的权限,会话只能通所有属于登录、用户账号或角色的权限,会话
51、只能通过过guest 用户账号的权限来访问其他数据库。用户账号的权限来访问其他数据库。n如果在数据库中没有如果在数据库中没有guest 用户账号的话,会话就不能用户账号的话,会话就不能获得访问数据库的权限。获得访问数据库的权限。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色3. 应用程序角色应用程序角色(1)利用)利用SQL Server Management Studio创建应创建应用程序角色的步骤用程序角色的步骤 在在“对象资源管理器对象资源管理器”下,展开数据库下,展开数据库teaching,右击,右击“安全性安全性”|“角色角色”,
52、在弹出的,在弹出的快捷菜单中选择快捷菜单中选择“新建新建”|“应用程序角色应用程序角色”命命令。令。 在弹出的在弹出的“应用程序角色应用程序角色-新建新建”对话框的对话框的“常规常规”选项卡中,输入角色名称、默认架构选项卡中,输入角色名称、默认架构和密码,如图和密码,如图10.19所示。所示。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色3. 应用程序角色应用程序角色(1)利用)利用SQL Server Management Studio创建应用程序创建应用程序角色的步骤角色的步骤 参照创建数据库角色时的步骤设置参照创建数据库角色时的步骤设
53、置“安全对象安全对象”选项选项卡后,单击卡后,单击“确定确定”按钮,应用程序角色建成。按钮,应用程序角色建成。 查看创建应用程序角色的脚本,应用程序角色查看创建应用程序角色的脚本,应用程序角色jsj10的的脚本如下:脚本如下:USE teachingGOCREATE APPLICATION ROLE jsj10 WITH DEFAULT_SCHEMA = dbo, PASSWORD = Naaaaaa清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色3. 应用程序角色应用程序角色(2)使用系统过程)使用系统过程sp_addapprole来创建应
54、用程序角色,来创建应用程序角色,并且赋予它们权限,这个过程的语法结构为:并且赋予它们权限,这个过程的语法结构为: sp_addapprolerolenamerolepasswd_name=password(3)激活应用程序角色)激活应用程序角色:当一个连接启动以后,必须执行当一个连接启动以后,必须执行系统过程系统过程sp_setapprole来激活应用程序角色所拥有的权来激活应用程序角色所拥有的权限。这个过程的语法结构为:限。这个过程的语法结构为:sp_setapprole rolenamerolepasswd=password ,encrypt=encrypt_style例如,激活应用程序角
55、色例如,激活应用程序角色jsj10的命令如下:的命令如下:Exec sp_setapprole jsj10, aaaaaa当用系统存储过程当用系统存储过程sp_setapprole激活应用程序角激活应用程序角色的时候,可以了解到应用程序角色总是和数据库色的时候,可以了解到应用程序角色总是和数据库绑定的,即应用的范围是当前数据库,如果在会话绑定的,即应用的范围是当前数据库,如果在会话中改变了当前数据库,那么你就只能做那个数据库中改变了当前数据库,那么你就只能做那个数据库中允许的操作。中允许的操作。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色
56、4管理数据库架构管理数据库架构架构架构(schema)是管理数据对象的逻辑单位,是形是管理数据对象的逻辑单位,是形成单个命名空间的数据库对象的集合。成单个命名空间的数据库对象的集合。多个用户可以共享一个默认架构以进行统一名称多个用户可以共享一个默认架构以进行统一名称解析。开发人员通过共享默认架构可以将共享解析。开发人员通过共享默认架构可以将共享对象存储在为特定应用程序专门创建的架构中,对象存储在为特定应用程序专门创建的架构中,而不是而不是 DBO 架构中。架构中。SQL Server 2005在引入架构后,访问数据库对象在引入架构后,访问数据库对象的完全限定模式为:的完全限定模式为:sever
57、.database.schema.object清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色4管理数据库架构管理数据库架构下面介绍创建数据库架构的步骤。下面介绍创建数据库架构的步骤。(1)在)在“对象资源管理器对象资源管理器”下,展开数据库下,展开数据库teaching,右击,右击“安全性安全性”|“架构架构”,在快捷菜单中选择,在快捷菜单中选择“新建架构新建架构”命令。命令。(2)在弹出的)在弹出的“架构架构-新建新建”窗体中的窗体中的“常规常规”选项卡中,输选项卡中,输入架构名入架构名schema1、架构所有者名、架构所有者名publi
58、c。(3)在)在“权限权限”选项卡中,单击选项卡中,单击“添加添加”按钮,在弹出的按钮,在弹出的“选择用户和角色选择用户和角色”对话框中,选择对象类型和对象。对话框中,选择对象类型和对象。(4)单击)单击“确定确定”按钮,在如图按钮,在如图10.22所示的所示的“权限权限”选项卡选项卡中为用户和角色设置权限后。单击中为用户和角色设置权限后。单击“确定确定”按钮,数据库架按钮,数据库架构构schema1创建完毕。创建完毕。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.1 数据库角色数据库角色4管理数据库架构管理数据库架构下面介绍创建数据库架构的步骤。下面介绍创建数据
59、库架构的步骤。(5)对)对“架构架构”项进行刷新,即可观察到新建的架构项进行刷新,即可观察到新建的架构schema1。还可以通过执行创建脚本的操作查看创建架构的代码。还可以通过执行创建脚本的操作查看创建架构的代码。同样同样:n也可以通过也可以通过SQL Server Management Studio图形工具和图形工具和Transact-SQL命令对架构进行修改和删除。命令对架构进行修改和删除。n在在SQL Server 2005中,多个用户可以通过角色和成员身份拥中,多个用户可以通过角色和成员身份拥有一个架构,可以对该架构进行安全权限的设置。有一个架构,可以对该架构进行安全权限的设置。n多个
60、用户可以共享一个默认架构,进行统一的名称解析。删多个用户可以共享一个默认架构,进行统一的名称解析。删除数据库用户不必再修改和测试显示引用这些对象的应用程除数据库用户不必再修改和测试显示引用这些对象的应用程序。序。清华大学出版社. SQL Server 2005数据库应用与开发 10.3.2 管理数据库用户管理数据库用户数据库用户是访问某个特定数据库的主体。数据库用户是访问某个特定数据库的主体。1利用利用SQL Server Management Studio创建创建数据库用户数据库用户(1)在)在“对象资源管理器对象资源管理器”下,展开数据库下,展开数据库teaching,右击,右击“安全性安
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024物流配送员劳动协议3篇
- 2024版网络游戏开发与运营权转让合同2篇
- 2024押证不押车商业地产项目贷款合同范本9篇
- 2025年度建筑安全评价与施工监理一体化合同范本3篇
- 2025厂区食堂承包合同:厂区文化建设与餐饮服务融合协议3篇
- 二零二五版北京市金融行业劳动合同法实施标准2篇
- 2024离婚财产分割保险保障合同
- 2024施工现场环境信息公开与共享协议3篇
- 2025年MLB棒球帽定制加工及品牌合作框架协议3篇
- 2025年度智能制造生产线操作工劳动合同3篇 - 副本
- 2024版个人私有房屋购买合同
- 2025年山东光明电力服务公司招聘笔试参考题库含答案解析
- 《神经发展障碍 儿童社交沟通障碍康复规范》
- 2025年中建六局二级子企业总经理岗位公开招聘高频重点提升(共500题)附带答案详解
- 2024年5月江苏省事业单位招聘考试【综合知识与能力素质】真题及答案解析(管理类和其他类)
- 注浆工安全技术措施
- 《食品与食品》课件
- 2024年世界职业院校技能大赛“食品安全与质量检测组”参考试题库(含答案)
- 读书分享会《白夜行》
- 2023上海高考英语词汇手册单词背诵默写表格(复习必背)
- 人民军队历史与优良传统(2024)学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论