探讨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
(二)执行上下文
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接