SQL 第07章 数据库安全性_第1页
SQL 第07章 数据库安全性_第2页
SQL 第07章 数据库安全性_第3页
SQL 第07章 数据库安全性_第4页
SQL 第07章 数据库安全性_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7章章 SQL Server的安全性管理的安全性管理 7. 1 SQL Server 2000的验证模式的验证模式 7. 2 登录管理登录管理 7. 3 用户管理用户管理 7. 4 角色管理角色管理 7. 5 许可管理许可管理 综合练习综合练习 返回目录返回目录 2 7. 1 SQL Server 2000的验证模式 7.1.1 NT 验证模式 7.1.2 混合安全模式 7.1.3 设置验证模式 7.1.4 SQL Server 系统登录验证过 程:P118 3 7.1.1 NT 验证模式 NT验证模式是指要登录到SQL Server系统的用户身份由NT 系统来进行验证。在NT登录验证模式

2、下,SQL Server回叫 Windows NT以获得相应的登录信息,并在sysxlogins表中 查找该帐户,以确定该帐户是否有权登录。在这种方式下, 用户不必提供登录名或密码让SQL server验证。 使用使用Windows NT验证有如下特点:验证有如下特点: NT验证模式下由Windows NT管理用户帐户,数据库管 理员的工作是管理数据库; Windows NT有功能很强的工具去管理用户帐户,如安全 验证和密码加密、审核、密码过期、最短密码长度以及 在多次登录请求失败后锁定帐户; 可以在SQL Server增加用户组; 本节首页 4 7.1.2 混合模式 混合验证模式是指用户登录

3、SQL Server系统时,其身份验证 由Windows NT和 SQL Server共同进行。 在混合验证模式下,使用Windows NT或 Windows 2000 Server用户帐户连接的用户可以使用信任连接。当用户使用 指定的登录名称和密码进行非信任连接时,SQL Server检测 输入的登录名和密码是否与系统sysxlogins表中记录的登录 名和密码相匹配,自己进行身份验证。如果不存在该用户的 登录帐户,则身份验证失败,用户将会收到错误信息。用户 只有提供正确的登录名和密码,才能通过SQL server验证。 混合验证模式有如下特点: 混合模式允许非Windows客户、Inter

4、net客户和混合的客户组连接到 SQL Server中 增加了安全性方面的选择 本节首页 5 7.1.3 设置验证模式 设置验证模式的工作只能由系统管理员来完成。 使用SQL Server企业管理器时,设置或改变验证模式的步骤如下: 运行SQL Server 企业管理器。 单击“SQL Server 服务器组”及要设置验证模式服务器旁边的+号,将 服务器展开。 在服务器的名字上单击右键,然后选择“属性”,系统将弹出如下图7- 1所示的“SQL Server 属性(配置)”窗口。 单击“安全性”选项卡,可以看到“安全性”选项卡中包括3个部分: P117 选择一种登录模式,如:“仅 Windows

5、 NT”。 选择一种“审核级别”,如选择审核登录失败的事件,将有助于查登录 失败的原因;选择审核成功登录的事件可以帮助你调试,但却影响登录的 速度。 设置完成后,单击“确认”,关闭对话窗口。 重新启动SQL Server以使修改的值生效。 本节首页 6 7.2 登录管理 7.2.1 系统管理员登录账户 7.2.2 用T-SQL语句创建、查看、删除SQL Server 登录账户 7.2.3 用企业管理器创建、查看、删除SQL Server 登录账户 7 7.2.1 系统管理员登录账户 SQL Server有两个默认的系统管理员登录帐户:sa 和 BUILTINAdministrators。 这两

6、个登录帐户具有SQL Server系统和所有数据库的全部权 限。sa是一个特殊的登录名,它代表混合验证机制下SQL Server的系统管理员,sa始终关联dbo用户。 BUILTINAdministrators是NT系统的系统管理员组。 具体地说,系统管理员负责下面的工作: 创建登录名 配置服务器 创建、删除数据库 无须考虑所有权和权限,可以操作各种数据库对象 停止、启动服务器 停止在服务器上运行的无效过程 某些权限只能被系统管理员拥有并且不能被授予其他用户。 这些功能是管理存储空间,管理用户进程及改变数据库选 项。 本节首页 8 7.2.2用T-SQL语句创建、查看、删除SQL Server

7、登录帐户 1. 将已经存在的将已经存在的NT登录(登录(NT组或用户)增加到组或用户)增加到 SQL Server系统登录中系统登录中 使用系统存储过程sp_grantlogin、sp_denylogin、 sp_revokelogin可以分别允许、阻止、删除 Windows NT组或用户到SQL Server的连接。 sp_grantlogin的语法形式如下: sp_grantlogin login sp_denylogin的语法形式如下: sp_denylogin login sp_revokelogin的语法形式如下: sp_revokelogin login 9 注意:注意:在要增加的

8、帐户login前面要加上域名及“”,而且这 三个存储过程不能放在同一个批中执行。 将Window NT帐户增加到SQL Server系统的时候,应该考 虑以下因素: 如果Windows NT 用户不是SQL Server组的成员,可以 为其建立一个登录帐户 如果某个Windows NT组中的每个成员都要连接到SQL Server上,可以为该组建立一个登录帐户 删除Windows NT 组或用户,不会删除SQL Server中对 应的登录帐户 10 2. 使用使用T-SQL语言创建、查看、删除语言创建、查看、删除SQL Server登录帐户登录帐户 SQL Server登录帐户的创建登录帐户的创

9、建 使用系统存储过程 sp_addlogin 可以创建一个登录帐户。 sp_addlogin存储过程的语法形式如下: sp_addlogin login ,password ,default_database login:要被创建的登录帐户。它是唯一必须给定值的参数, 而且必须是有效的SQL Server对象名。 password:新登录帐户的密码。 default_database:新登录帐户访问的默认数据库。 SQL Server登录帐户的查看登录帐户的查看 sp_helplogins 【例7-1】创建一个登录帐户为ABC,密码为123、使用的默认 数据库为JWGL。 EXEC sp_ad

10、dlogin ABC , 123 , jwgl EXEC sp_addlogin a1 , 111 , jwgl EXEC sp_addlogin a2 , 222 , master 11 登录帐户的删除登录帐户的删除 删除登录帐户和删除用户相似,但删除登录帐户时需要在数据库 中做较为复杂的检查,以确保不会在数据库中留下孤儿型的用户。 一个孤儿型的用户是指一个用户没有任何登录名与其映射。 删除一个登录帐户时,SQL Server 必须确认这个登录帐户没有 关联的用户存在于数据库系统中。如果存在用户和被删除的登录 名关联,SQL Server将返回错误提示信息,指出数据库中哪个用 户与被删除的登

11、录帐户相关联。此时,必须先用 sp_revokedbaccess存储过程将每个数据库中与该登录帐户关联 的用户对象清除,然后才能删除登录帐户。如果要删除的登录帐 户是数据库所有者,则需要使用系统存储过程sp _ changedbowner将所有权转授给其他的登录帐户。 删除一个登录帐户使用系统存储过程 sp_droplogin。 sp_droplogin存储过程的语法形式如下: sp_droplogin login login:要被删除的登录帐户。 【例7-2】从SQL Server中将登录帐户ABC删除掉。 EXEC sp_droplogin ABC 本节首页 12 7.2.3 用企业管理器

12、创建、查看、删除 SQL Server登录帐户 1. 使用企业管理器将已经存在的使用企业管理器将已经存在的Windows NT组增加到组增加到SQL Server中中 使用企业管理器将已经存在的NT组或用户增加到SQL Server中的操作步骤操作步骤如下: 启动SQL Server企业管理器。展开服务器后,展开“安全性”文 件夹。 点击“登录”图标,右击要右边的窗格中授权的NT组或用户,在 系统弹出的快捷菜单上点击“属性”。系统出现如图7-3的“SQL Server 登录属性”窗口。 点击“数据库访问”选项卡,选择该NT用户组或用户可以访问的 数据库,并可选择其在该数据库中允许担任的数据库角

13、色。应该注 意的是,在选择该登录可以访问的数据库的同时,企业管理器将创 建与登录名完全相同的数据库用户。 点击“确定”,一个NT组或用户就增加到SQL Server中登录帐户 中去了。 13 2. 用企业管理器创建、删除用企业管理器创建、删除SQL服务器登录帐户服务器登录帐户 用企业管理器创建用企业管理器创建SQL服务器登录帐户服务器登录帐户 用企业管理器创建SQL服务器登录帐户的具体步骤如下: 启动SQL服务器企业管理器。 单击要连接的服务器左侧的加号连接该服务器。 单击“安全性”文件夹左侧的加号,将“安全性”文 件夹展开。 右击“登录”,选择“新建登录”菜单项,进入如图 7-4“SQL服务

14、器登录属性-新建登录”窗口。 选择一种身份验证模式,如选择窗口验证模式,则需 要选择域名,再点击名称栏右边“”按钮,在你选择的 域中选择一帐户,然后指定该帐户默认登录的数据库和 默认语言;如选择SQL服务器验证模式,则需要输入登 录帐户名称、密码及确认密码。点击“服务器角色”选 项卡可授与该登录用户服务器范围内的权限,点击“数 据库访问” 选项卡,可指定该登录用户可以访问的数据 库。 单击“确定”按钮即可增加一个登录帐户。 14 3. 查看及删除登录帐户查看及删除登录帐户 一个新的登录帐户增加后,可以在企业管理器中查看其详细 信息。查看一个帐户的步骤如下: 启动SQL服务器企业管理器,并展开到

15、“安全性”。 点击“登录”,右边窗格显示的是当前以“域名登录 名”(领土login)格式显示的登录帐户的列表。 右击该窗口中的某一登录帐户,在系统弹出的菜单上 点击“属性”可进入“SQL当仆人登录属性”窗口查看该 登录帐户的信息;点击“删除”可以删除该登录帐户。 本节首页 15 7.3 用户管理 7.3.1 数据库用户名和登录名的关系 7.3.2 用T-SQL语句创建、查看、删除数据库 用户 7.3.3 使用企业管理器创建、查看、删除数据 库用户 7.3.4 改变数据库所有权 16 7.3.1 数据库用户名和登录名的关系 登录名、数据库用户名是SQL服务器中两个容易混淆的概念。 登录名是访问S

16、QL服务器的通行证。每个登录名的定义存放 在主人数据库的表sysxlogins中。登录名本身并不能让用户 访问服务器中的数据库资源。 要访问特定的数据库,还必须有数据库用户名。新的登录创 建以后,才能创建用户,用户在特定的数据库内创建,必须 和一个登录名相关联。 用户的定义信息存放在与其相关的数据库的sysusers表中。 这个表包含了该数据库的所有用户对象以及和它们相对应的 登录名的标识。用户名没有密码和它相关联。 大多数情况下,登录名和用户名使用相同的名称。 17 在SQL服务器中,登录帐户和数据库用户是SQL服务器进 行权限管理的两种不同的对象。 一个登录帐户可以与服务器上的所有数据库进

17、行关联,而 数据库用户是一个登录帐户在某个数据库中的映射,也就 是说一个登录帐户可以映射到不同的数据库,产生多个数 据库用户,一个数据库用户只能映射到一个登录帐户。 允许数据库为每个用户对象分配不同的权限,这一特点为 在组内分配权限提供了最大的自由度。 本节首页 18 7.3.2 用T-SQL语句创建、查看、删除数 据库用户 登录帐户成功创建后,怎样才能将登录帐户映射到数据库中 的用户上呢? 如果使用企业管理器创建登录帐户,可以省略这步操作。 但要注意,实际上它完成了两步不同的操作: 第一步是创建登录帐户, 第二步是将登录帐户映射为数据库中同名的用户。 为一个登录帐户授权,最常使用的方法是创建

18、一个新的数据 库用户,然后将其与一个登录帐户对应起来。 19 1. 用用T-SQL语句创建数据库用户语句创建数据库用户 使用系统存储过程sp_grantdbaccess可以创建数据库用户。其具体 的语法形式如下: sp_grantdbaccess 登录 ,name_in_db 这个存储过程有两个参数,但只有第一个参数是必须的。 ? 登录:数据库用户所对应的登录名。 ? name_in_db:为登录帐户登录在当前数据库中创建的用户名。 注意: 只有 sysadmin固定服务器角色、db_accessadmin 和 db_owner 固定数据库角色的成员才能执行sp_grantdbaccess;

19、如果第二参数被省略,一个和登录名相同的用户名将被添加到数 据库中,通常省略这个参数; 这个存储过程只对当前的数据库进行操作,所以在执行存储过程 前应该首先确认当前使用的数据库是要增加用户的数据库; 要创建用户名的登录帐户必须在执行存储过程前已经存在。 20 【例7-3】在混合验证模式下,为数据库JWGL登录帐户”ABC” 和“a1”和a2创建一个同名的数据库用户。 use jwgl go exec sp_grantbaccess ABC exec sp_grantdbaccess a1 exec sp_grantdbaccess a2 2. 用用T-SQL语句查看数据库用户语句查看数据库用户

20、在查询分析器中输入sp_helpuser,单击“执行”,可显示 某个数据库中的有效用户。 21 3. 用用T-SQL语句删除数据库用户语句删除数据库用户 当一个登录帐户不再需要访问一个数据库或对应的的登录 帐户被删除时,需要将数据库内的用户名删除。 用办理-SQL的sp_revokedbaccess存储过程可以删除数据 库用户。这个存储过程从数据库中将用户删除,即从 sysusers表中删除用户名。但在用户定义事务内部不能执 行存储过程sp_revokedbaccess。sp_revokedbaccess存 储过程具体语法如下: sp_revokedbaccess name_in_db = 名

21、字 22 在以上语法形式中: ? 名字:要删除的用户名。名字可以是SQL服务器的用户 名或存在于当前数据库中的窗口NT的用户名或组名。 注意,sp_revokedbaccess 存储过程不能删除: 公众角色、dbo、数据库中的固定角色 主人和 tempdb 数据库中的 客人用户帐户 窗口NT组中的 窗口NT用户 【例7-4】使用命令sp_revokedbaccess将数据库中的“ABC” 删除掉。 sp_revokedbaccess ABC 本节首页 23 7.3.3 使用企业管理器创建、查看、删除 数据库用户 1. 使用企业管理器创建数据库用户与查看使用企业管理器创建数据库用户与查看 在SQ

22、L服务器的企业管理器中用以下步骤完成同样 的任务: 启动企业管理器。 展开要操作的服务器及要创建用户的数据库。 点击“用户”,右边窗格可以查看到该数据库的用户。 右击“用户”文件夹,选择“新建数据库用户”,弹 出“新建用户”的窗口。 输入要创建的数据库用户的名字,然后在下拉的列表 中选择对应的登录名。 单击“确定”按钮,将用户添加到数据库中。 24 2. 使用企业管理器删除数据库用户使用企业管理器删除数据库用户 在企业管理器中用以下的步骤删除用户名: 启动企业管理器。 展开要操作的服务器及要删除用户所在的数据库。 单击“用户”,右边显示该数据库所有的库用户。 右击要删除的用户,在系统弹出的快捷

23、菜单上选择 “删除”来删除这个用户。 本节首页 25 7.3.4 改变数据库所有权 在数据库中有一个用户是数据库所有者,该用户拥有数据库 中所有的对象。 一个数据库只能有一个数据库所有者。数据库所有者不能被 删除。 通常,登录名sa映射到库中的用户是dbo。要改变数据库所 有权只能使用系统存储过程sp_changedbowner,这个存储 过程是唯一改变数据库所有权的方法。 存储过程sp_changedbowner只有一个参数,即新的所有者 的登录标识。在企业管理器中没有类似功能。 本节首页 26 7.4 角色管理 管理用户的任务是要确保用户能够访问到他们需要的数据但 又不能获得超出他们权限范

24、围的数据。SQL服务器2000中, 用户一般是放在组中工作的。也就是说,可以将在相同数据 上具有相同权限的用户放入一个组中进行管理。SQL服务器 具有将用户分配到组中的能力,分配给组的权限适用于组中 的每一个成员。使用角色对用户进行分组管理有利于简化对 用户的授权工作。 在SQL服务器2000中,组是通过角色来实现的,可以将角色 理解为组。角色有两种:服务器角色和数据库角色。服务器 角色是服务器级的一个对象,只能包含登录名。数据库角色 是数据库级的一个对象,数据库角色只能包含数据库用户名 而不能是登录名。 7.4.1 固定服务器角色固定服务器角色 7.4.2 数据库角色数据库角色 27 7.4

25、.1 固定服务器角色 1. 固定服务器角色及功能固定服务器角色及功能 安装完SQL服务器2000后,系统自动创建了以下8个固定的服 务器角色,具体名称及功能描述如下表7-1。它在服务器级别 上被定义,存在于数据库外面,它是不能被创建的。 表表7-1 固定服务器角色及功能固定服务器角色及功能 角色 功能 sysadmin 能够执行任何任务 securityadmin 负责系统的安全管理,能够管理和审核服务器登录名 serveradmin 能够配置服务器的设置 setupadmin 能够安装、复制 processadmin 能够管理SQL服务器系统的进程 diskadmin 能够管理磁盘文件 db

26、creator 能够创建和修改数据库 bulkadmin 能够执行大容量数据的插入数据操作 28 固定服务器角色存放在主人数据库的sysxlogins表中。执行 存储过程sp_helpsrvrole,可查看服务器上的固定服务器角 色,要查看某个固定服务器角色的权限可执行存储过程 sp_srvrolepermission。如在查询分析器中执行语句:实行 sp_srvrolepermission sysadmin,可查看固定服务器角色 sysadmin的权限。 2. 为登录帐户指定及收回服务器角色为登录帐户指定及收回服务器角色 使用sp_addsrvrolemember存储过程或企业管理器可为一个

27、 登录帐户指定服务器角色。 使用系统存储过程为登录帐户指定及收回服务器角色、 指定服务器角色的系统存储过程是sp_addsrvrolemember, 具体语法如下: sp_addsrvrolemember 登录登录,角色角色 ? 登录:是指登录名。 ? 角色:是指服务器角色名。 收回服务器角色的系统存储过程sp_dropsrvrolemember,参 数含义同上。具体语法如下: sp_dropsrvrolemember 登录,角色 29 【例7-5】 将登录名ABC加到sysadmin角色中。 sp_addsrvrolemember ABC ,sysadmin 使用企业管理器为登录帐户指定及收

28、回服务器角 色 使用企业管理器为服务器角色增加成员的步骤如下: 启动企业管理器。 展开要操作的服务器、展开“安全性”文件夹。 点击“安全性”节点下的“服务器角色”,右边窗格 将显示系统的8个服务器角色。 右击要添加登录到的服务器角色(如sysadmin),选择 “属性”,系统将弹出如图7-5的 30 如要收回某登录帐户的服务器角色,只需从图7-5中 选择该登录帐户,然后点击“删除”即可。 如要为登录帐户指定服务器角色,单击“添加”按 钮,出现“添加成员”窗口。 在“添加成员”窗口中选择相应的用户并单击“确 定”按钮将它们加入到组中。 再次单击“确定”按钮,退出“服务器角色属性” 窗口。 本节首

29、页 31 7.4.2 数据库角色 7.4.2 数据库角色数据库角色 数据库角色分为固定数据库角色和自定义数据库角色。 1. 固定数据库角色及功能固定数据库角色及功能 在安装完在安装完SQL服务器后,系统将自动创建如表服务器后,系统将自动创建如表7-2所示的所示的10个固定的数个固定的数 据库角色。据库角色。 表表7-2 固定数据库角色及功能固定数据库角色及功能 角色角色 功能功能 公众公众维护默认的许可维护默认的许可 db_owner 数据库属主,在特定数据库内具有全部权限数据库属主,在特定数据库内具有全部权限 db_accessadmin 能够添加、删除数据库用户和角色能够添加、删除数据库用

30、户和角色 db_securityadmin 可以管理全部权限、对象所有权、角色和角色成可以管理全部权限、对象所有权、角色和角色成 员资格员资格 db_ddladmin 能够添加、删除和修改数据库对象。能够添加、删除和修改数据库对象。 db_backupoperator能够备份和恢复数据库。能够备份和恢复数据库。 db_datareader 能够从任意表中读出数据。能够从任意表中读出数据。 db_datawriter 能够对任意表插入、修改和删除数据。能够对任意表插入、修改和删除数据。 db_denydatareader 不允许从表中读数据。不允许从表中读数据。 db_denydatawrite

31、r 不允许改变表中的数据。不允许改变表中的数据。 32 公众角色公众角色是一个特殊的数据库角色,数据库中的每位用户都 是公众角色的成员,它负责维护数据库中用户的全部默认许 可,不能将用户和组或角色指定公众角色。 在使用NT验证模式时,推荐使用企业管理器将窗口NT的组 加入到指定的数据库中并为NT组成员提供登录名和数据库 用户名,在这里,用户被定义成某种数据库角色。利用这种 方法,数据库管理员可以减轻创建组时的工作量。 要浏览数据库固定数据库角色,可执行系统存储过程:实行 sp_helpfixesrole 有如下几点需要注意:有如下几点需要注意: 数据库角色在数据库级别上被定义,存在于数据库之内

32、。数据库角 色存放在每个数据库sysusers表中 固定数据库角色不能被删除、修改、创建 固定数据库角色可以指定给其它登录帐户 33 2. 自定义数据库角色自定义数据库角色 创建自定义数据库角色创建自定义数据库角色 自定义数据库角色有两种:标准角色和应用程序角色。其中 应用程序角色需要设置密码。标准角色型的自定义数据库角 色将已经存在的数据库用户作为它的成员。创建自定义数据 库角色和许多其他任务一样,在SQL服务器中有两种方法完 成增加角色的工作。可以使用办理-SQL语句或企业管理器。 使用系统存储过程创建自定义数据库角色使用系统存储过程创建自定义数据库角色 创建自定义数据库角色使用的是系统存

33、储过程sp_addrole, 它只有一个参数,即要增加的角色名。这个角色名必须遵照 SQL服务器的命名规则,而且不能和任何用户名相同。具体 语法如下: sp_addrole 角色角色 ,所有者所有者 ? 角色:是指新增的数据库角色。 ? 所有者:是新增数据库角色的属主。 【例7-6】增加一个叫AAA的自定义数据库角色。 sp_addrole AAA ,dbo 34 使用企业管理器创建自定义数据库角色使用企业管理器创建自定义数据库角色 使用企业管理器可以创建自定义数据库角色,具体创建 的步骤如下: 启动企业管理器。 展开要操作的服务器、展开想添加角色的数据库。 右击“角色”文件夹并选择“新建数据

34、库角色”,系统将 弹出如图7-6(P128)的“数据库角色-新建角色”的对话窗口。 输入角色名。 选择作为角色成员的用户。单击“添加”按钮。用户被显 示在“用户”列表框内。选中相应的用户并单击“确定”按 钮将它们加入到角色中。 再次单击“确定”按钮,退出“数据库角色-新建角色”窗 口。 35 删除自定义数据库角色删除自定义数据库角色 用户自定义数据库角色可以删除,从数据库中删除“角色” 和从数据库中删除用户非常相似。但是,和固定服务器角色 一样,固定数据库角色不能被删除。 使用系统存储过程删除自定义数据库角色使用系统存储过程删除自定义数据库角色 删除自定义数据库角色的系统存储过程是sp_dro

35、prole,其语 法形式如下: sp_droprole 角色角色 ? 角色:要删除的自定义数据库角色。 在执行sp_droprole时要注意的一点是:要删除的角色必须没 有成员。被删除角色中的所有成员必须删除或被事先改变到 其他的角色中。如果使用sp_droprole去删除一个非空的角色 时,系统将会给出如下的错误信息: 服务器: 消息 15144,级别 16,状态 1,过程 sp_droprole, 行 53 该角色有成员。角色必须为空白后才能除去。 36 使用企业管理器删除自定义数据库角色使用企业管理器删除自定义数据库角色 启动企业管理器。 展开需要操作的服务器并展开要操作的数据库。 展开

36、“角色”,右击要删除的自定义数据库角色, 在系统弹出的快捷菜单中选择“删除”。 确认“删除”操作,如该角色无成员,该角色将被删 除,如该角色有成员,系统将给出提示。 3. 为数据库角色添加及删除成员为数据库角色添加及删除成员 使用系统存储过程或企业管理器为一个数据库角色添加及 删除成员。 使用系统存储过程为数据库角色增加及删除成员使用系统存储过程为数据库角色增加及删除成员 系统存储过程sp_addrolemembe可为数据库角色增加成员, sp_addrolemember存储过程的具体语法如下: 37 sp_addrolemember 角色,security_account ? 角色:数据库角

37、色名。 ? security_account:数据库用户名。 系统存储过程sp_droprolemembe可为数据库角色删除成员, sp_droprolemember存储过程的具体语法如下: sp_addrolemember 角色,security_account 角色及security_account参数的含义同上。 【例7-7】使用系统存储过程sp_addrolemember将数据库用户 ABC,a1,a2作为成员添加到数据库角色AAA中,再将ABC从数据 库角色AAA中删除。 use jwgl exec sp_addrolemember AAA,a1 exec sp_addrolemem

38、ber AAA,a2 exec sp_addrolemember AAA,ABC go sp_droprolemember AAA,ABC 38 使用企业管理器为数据库角色增加及删除成员使用企业管理器为数据库角色增加及删除成员 使用企业管理器为数据库角色增加及删除成员的具体步骤如 下: 启动企业管理器。 展开要操作的服务器并展开要添加用户的数据库。 单击“角色”文件夹,右边窗格出现该数据库的所有 角色列表,右击某个角色并选择“属性”。系统将弹出类 似图7-6(P128)那样的“数据库角色属性”对话窗口。 如要删除该数据库角色的某个成员,可点击该成员, 再点击“删除”即可。 如要为该数据库角色添

39、加成员,单击“添加”按钮, 出现“添加角色成员”窗口。 在“添加角色成员”窗口中,选择某一用户并单击 “确定”按钮将它们加入到组中。 在用户增加完后,单击“确定”按钮,一个数据库角 色的成员就添加进去了。 本节首页 39 7. 5 权限(许可)管理 7.5.1 许可类型 7.5.2 许可的验证 7.5.3 管理许可 40 7.5.1 许可类型 SQL服务器2000中,许可有三种类型:默认许可、对象许可 和语句许可。 1. 默认许可默认许可 SQL服务器中包含很多对象,每个对象都有一个属主。一般 来说,对象的属主是创建该对象的用户。 如果系统管理员创建了一个数据库,系统管理员就是这个数 据库的属

40、主。 如果一个用户创建了一个表,这个用户就是这个表的属主。 很显然,系统管理员具有这个数据库的全部操作权限,创建 表的用户具有这个表全部操作权限。这就是数据库对象的默 认许可。 默认许可也称为暗指许可。 41 数据库中的用户根据它们在数据库中的角色被设定 了某些缺省权限,也就意味着这些用户获得某些默 认许可。这样的用户有四类: 第一类,系统管理员系统管理员,可以创建和删除数据库,配置服 务器。系统管理员永远拥有主人数据库; 第二类,数据库属主数据库属主,可以创建和管理数据库中的对象 以及管理整个数据库; 第三类,对象属主对象属主,是特定对象的属主。对数据库来说, dbo就是对象属主。一个对象属

41、主可以在对象上进行授予 或回收权限的操作而且可以删除对象; 第四类,数据库用户数据库用户,其默认许可取决于创建数据库用 户时的设置。 42 2. 对象许可对象许可 对象许可是指用户基于数据库层次上的访问和操作权限,如 果没有对象的许可,用户将不能访问该对象。对象许可有五 种:查询、插入、修改、删除和执行。前四个许可是用于表 和视图的,执行许可只用于存储过程。 选择:该许可授予数据库中某个特定表的用户,具备这种许 可的用户才能访问、操作该表的数据。 插入:该许可授予数据库中某个特定表的用户可以向表中插 入数据。 更新:该许可授予数据库中某个特定表的用户可以对表中的 数据进行更新。 删除:该许可授

42、予数据库中某个特定表的用户可以删除表中 的数据。 执行:该许可授予数据库中某个特定的用户,具有这种许可 的用户可以执行存储过程。 43 3.语句许可语句许可 语句许可通常授予需要在数据库中创建对象或修改对象、执行数 据库和事务日志备份的用户。如果一个用户获得某个语句的许可, 该用户就具有了执行该语句的权力。 以下是需要进行许可设置的语句: BACKUP DTADBASE:允许用户执行备份数据库的操作。 BACK LOG:允许用户执行备份事务日志库的操作。 CREATE DATABASE:允许用户创建新的数据库。 CREATE DEFAULT:允许用户创建缺省。 CREATE PROCEDURE

43、:允许用户执行创建存储过程的操作。 CTEATE FUNCTION:允许用户创建用户定义函数。 CREATE RULE:允许用户创建规则。 CREATE TABLE:允许用户创建表。 CREATE VIEW:允许用户创建视图。 语句许可授予用户执行相应命令的能力,语句许可适用于创建和 删除对象、备份和恢复数据库。 本节首页 44 7.5.2 许可的验证 针对每一个数据库及数据库对象,管理员为用户指定了 执行某些操作的许可。当用户执行某个操作时,系统首 先进行许可检查,用户获得许可,可以执行该操作,否 则,不允许执行该操作,系统返回错误信息。 SQL服务器服务器2000进行许可验证的步骤如下进行

44、许可验证的步骤如下: 用户执行某项操作,相应的SQL语句通过网络发送到SQL 服务器服务器。 SQL服务器服务器收到SQL语句后,检查该用户是否具有 对操作对象的许可权限及执行这些语句的权限。 如果SQL服务器服务器许可验证通过,SQL服务器系统执 行相应的操作,否则,系统给出错误信息。 本节首页 45 7.5.3 管理许可 1. 管理许可的用户管理许可的用户 以下的四种用户可以对部分或全部语句授权: 系统管理员系统管理员(系统管理员系统管理员):有sa帐户或具有相同权限 的用户 数据库的属主数据库的属主(数据库所有者数据库所有者):当前数据库的拥有者 对象的属主对象的属主(物体所有者物体所有者):当前对象的拥有者 数据库用户数据库用户(使用者使用者):不属于以上用户的其他用户 46 2. 许可的状态许可的状

温馨提示

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

评论

0/150

提交评论