WEB开发网
开发学院数据库MSSQL Server 面向数据库管理员的SQL Server 2008安全性概述 阅读

面向数据库管理员的SQL Server 2008安全性概述

 2010-03-06 15:43:13 来源:WEB开发网   
核心提示:在 SQLServer2008 中,完全合格的对象名称由4部分组成,面向数据库管理员的SQL Server 2008安全性概述(11),这与旧版SQL Server 中的对象名称类似:server.database.schema.object与旧版类似,如果对象所在服务器与运行代码的服务器同名,数据库管理员会将数据库细

在 SQLServer2008 中,完全合格的对象名称由4部分组成,这与旧版SQL Server 中的对象名称类似:

server.database.schema.object

与旧版类似,如果对象所在服务器与运行代码的服务器同名,则可忽略服务器名称。如果连接打开了同名数据库,则可忽略数据库名称。如果使用当前用户的默认架构或架构为 dbo 所拥有,则可忽略架构名称,因为这是 SQL Server 尝试消除对象名称歧义时最后用过的架构。

可以利用 CREATE USER 语句而非 sp_adduser 语句创建新用户。此系统存储过程仍然是为了实现向后兼容性,但已进行了少许修改,以遵循用户与架构分离的新原则。sp_adduser 创建的架构与新用户名或应用程序角色同名,并将该架构作为用户的默认架构,这与 SQL Server 2000 的行为类似,但提供了分离的架构。

注意:使用 ALTER AUTHORIZATION 语句时,可能会产生这种情况:“您”拥有“我的”架构中的表(或反之)。这个问题具有重大的隐含意义。例如,谁拥有该表的触发器,您还是我?底部的代码行可以设计得非常巧妙,以发现架构范围对象或类型的真正所有者。有两种方式可以避开此问题:

利用 OBJECTPROPERTY(id,”OwnerId”)发现对象的真正所有者。

利用 TYPEPROPERTY(type,”OwnerId”)发现类型的真正所有者。

SQL Server 2008 利用同义词帮助减少击键次数。可以利用两部分、三部分或四部分完整对象名为任何对象创建同义词。SQL Server 使用同义词访问已定义的对象。在下列代码中,“History”同义词表示在AdventureWorks 数据库中指定的 schema.table。SELECT 语句返回EmployeeDepartmentHistory 表的内容。

USE AdventureWorks
GO
CREATE SYNONYM History FOR HumanResources.EmployeeDepartmentHistory
SELECT * FROM History

注意:如果其他人准备使用同义词,则管理员或所有者必须为其授予权限。针对视图、表或表值函数,可对同义词应用GRANT SELECT。针对过程或标量函数,可对同义词应用 GRANT EXECUTE,诸如此类。

也可通过以下代码,为完整的四部分名称定义“History”同义词:

CREATE SYNONYM History

FOR MyServer.AdventureWorks.HumanResources.EmployeeDepartmentHistory

假设当前的用户拥有使用同义词的权限以及读取表的权限,则使用类似的四部分全名即可在其他数据库上下文中使用同义词:

USE pubs

SELECT * FROM AdventureWorks..History

还要注意,如果不提供架构名称作为新同义词名称的一部分,它将成为默认架构的一部分。

加密和密钥管理

服务器级安全可能是系统管理员最关心的问题,而对于数据库来说,所有操作都是在生产环境中完成的。。在大多数情况下,数据库管理员会将数据库细节的问题留给数据库开发人员处理,只要开发人员在环境的限制内工作。SQLServer2008提供了大量确保数据库安全的功能。

上一页  6 7 8 9 10 11 12 13 14 15  下一页

Tags:面向 数据库 管理员

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接