6 .3 .3 架构作用域权限
最后,在架构作用域中也有附加的权限,可以把它们指派给对象、数据类型和XML
架构集合。给架构级别对象授予权限的语法如下所示。
{GRANT | REVOKE | DENY} action ON class :: securable TO principal
如果类是OBJECT,那么只要对象名称中含有架构名称,可以省略OBJECT::,如下所示:
Use AdventureWorks2008 GRANT SELECT, UPDATE ON Person.Person to Alice;
GO
架构对象包括:
• 聚合
• 约束
• 函数
• 过程
* 队列
• 统计信息
• 同义词
• 表
• 视图

表 6-20列出了架构类和可为其设置的权限。记住,不是所有的权限对于每个对象类型
都可用。例如,不能在表上授予EXECUTE权限,或者在存储过程上授予SELECT权限。

架构图是哪种UML图_架构图是哪种UML图

6.3.4 使用 SQL Server Management Studio 管理权限
也可以使用SQL Server Management Studio中 的 “对象资源管理器”设置或査看对象
的权限。在本节中,您将学习如何使用GUI控制对SQL资源的访问。
首先介绍如何审核对象的权限。
在下个例子中,为 AdventureWorks2008数据库创建一个新的登录名,一个新的数据库 用户,然后将Sales架构的控制权限授予这个新用户。相应代码如下所示:
USE master CREATE LOGIN Chris WITH PASSWORD = rP@ssw0rd', DEFAULT_DATABASE =AdventureWorks2008 ;
GO

USE AdventureWorks2008 CREATE USER Chris WITH DEFAULT SCHEMA =Sales;
GO
GRANT CONTROL ON SCHEMA :: SALES TO Chris; GO
现 在 使 用 “对象资源管理器”査看授予了 Chris什么权限。首先看数据库本身: (1) 展开服务器。
(2) 展 开 “数据库”节点。
(3) 右 击 AdventureWorks2008文件夹,然 后 选 择 “属性”命令。 (4) 选 择 “权限”页。
(5) 在 “用户或角色”窗格中,选 择 Chris。 在 Chris的显式权限列表中,向下滚动到“连接”项。请注意,授予权限的用户(在这 里 是 dbo)也 列 在 “授权者”列中。 在该用户的显式权限列表旁边有一个有效权限选项卡。单击该选项卡将获得一个用户
对该资源所拥有的权限的列表,包括通过某个角色或组的成员资格授予的权限。这种新的
功能有助于简化审核安全设置的过程,或检修用户无法访问资源的原因。
既然已经把Sales架构的控制权授予了 Chris,现在看看有哪些权限被指派给了该架构 以及其中的对象。为此,打 开 AdventureWorks2008数据库中Chris的用户帐户的属性页(如 图 6-10所示):

架构图是哪种UML图_显式_02

(1) 单 击 “确定”或 “取 消 ”按 钮 关 闭 “数据库属性-AdvemureWorkCOOS” 窗口。
(2) 在 “对象资源管理器”中,展 开 AdventureWorks2008节点。
(3) 展 开 “安全性”节点。

(4) 展 开 “用户”节点。
(5) 右 击 C hris,选 择 “属 性 ”命令。 (6) 选 择 “安全对象”页,然 后 单 击 “搜索”按钮。
(7) 选 择 “属于该架构的所有对象”。
(8) 从 “架构名称”下拉列表中,选 择 Sales。 (9) 单 击 “确定”按钮。
如果 査 看 Sales架构上的显式权限列表,可注意到Chris只 有 CONTROL权 限 。单击有 效权限选项卡可以看到,该用户拥有架构中任何对象的完全访问权限。
现在看一下Sales架构中的特定对象。在 “安全对象”列表中选择CreditCard,然后选 择有效权限选项卡。
查 看 Sales.CreditCard的显式权限列表(如图6-11所示),可 注 意 到 Chris在这个表上没 有显式权限。单击有效权限选项卡会显示该用户对该表及其内容有完全访问权限。

 

架构图是哪种UML图_架构图是哪种UML图_03

现在,您有了一个能完全访问Sales架构的用户,但它不能访问Sales架构外部的资源。 任何尝试查询其他架构中的视图的行为都会产生如下错误:

SELECT * FROM H u m a n R e s o u rc e s . v E m p lo y e e
M sg 2 2 9 , L e v e l 1 4 , S t a t e 5 , L i n e 1 SELECT p e r m i s s i o n d e n i e d o n o b j e c t ' v E m p lo y e e ' , d a t a b a s e 1 A d v e n tu re W o r k s 2 0 0 8 *, s c h e m a 'H u m a n R e s o u r c e s * .


注意,您也可以在“用户属性”对话框中为数据库对象添加权限。可 以 在 Management Studio中通过编辑安全对象的属性或编辑主体的属性指派权限。