WEB开发网
开发学院数据库MSSQL Server 探讨SQL Server 2005的安全策略 阅读

探讨SQL Server 2005的安全策略

 2007-05-15 09:33:26 来源:WEB开发网   
核心提示: 用户与模式分离开来执行上下文(一)用户和模式的分离模式是一个容器—你可以在其中对数据库对象(表,存储过程,探讨SQL Server 2005的安全策略(3),视图,等等,你能把权限赋给一个模式以实现对该模式中对象的存取,列表2展示了SQL Server 2005中的模式用法,)

用户与模式分离开来

执行上下文

(一)用户和模式的分离

模式是一个容器—你可以在其中对数据库对象(表,存储过程,视图,等等。)进行逻辑分组。这与.NET框架基类库中的命名空间是一样的。因为SQL Server中的一个模式也可能有一个所有者,因此你可以指令在一个给定模式中的每个对象都拥有一个相同的所有者。SQL Server 2000的实现模式并不很好:模式的名字与用户的名字是相同的。因此,在模式和数据库对象的所有者之间存在一个直接的关系(见图2)。

图2.原来在SQL Server 2000中的用户和模式关系

SQL Server 2000中的最大问题在于在一给定模式中的对象必须使用完全限定名(schema.objectname);但是,当你从数据库中删除一个表时,该对象的完全限定名会发生改变。因此,你对数据库所作的改变将也会不幸地发生到客户端的查询中,而且有时这样的改变将付出昂贵的代价。而在SQL Server 2005中,模式成为数据库中一个单独的拥有名字和所有者的本机对象。这样的模式与用户不再存在关系(见图3)。

图3.在SQL Server 2005中用户和模式分离开来

现在,你能在数据库中删除和添加新用户而不用修改软件(客户端和数据库端都不用)。而且,你能把权限赋给一个模式以实现对该模式中对象的存取。列表2展示了SQL Server 2005中的模式用法。

列表2

USE master
GO
-- 建立数据库登录
CREATE LOGIN Paul WITH PASSWORD='p@ssw0rd1'
CREATE LOGIN Mary WITH PASSWORD='p@ssw0rd1'
USE TestDatabase
GO
CREATE USER Paul FOR LOGIN Paul
CREATE USER Mary FOR LOGIN Mary
--创建一新模式
CREATE SCHEMA SalesData
-- 在模式“SalesData”中创建一新表
CREATE TABLE SalesData.SalesPromotion
( ID int, [Name] varchar(255))
GRANT ALL ON SalesData TO Paul
ALTER USER Paul WITH DEFAULT SCHEMA = SalesData
GRANT SELECT ON SCHEMA::SalesData TO MARY

(二)执行上下文

上一页  1 2 3 4 5  下一页

Tags:探讨 SQL Server

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