当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 使用SQL Server 7.0建立一个安全的数据库的最好方法是

MSSQL
SQL Server数据库技术(122)
SQL Server数据库技术(123)
SQL Server数据库技术(124)
SQL Server数据库技术(125)
SQL Server数据库技术(126)
SQL Server数据库技术(127)
SQL Server数据库技术(128)
SQL Server数据库技术(129)
SQL 语法参考手册
存储过程编写经验和优化措施
Sql Server实用操作小技巧集合
更改数据库中表的所属用户的两个方法
SQL SERVER中直接循环写入数据
无数据库日志文件恢复数据库方法两则
维护Sql Server中表的索引
Sql Server全文搜索中文出错的问题
利用数据库日志恢复数据到时间点的操作
SQL Server2000数据库文件损坏时如何恢复
MySQL和SQL Server,到底选择谁?
SQL特性汇总表

MSSQL 中的 使用SQL Server 7.0建立一个安全的数据库的最好方法是


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 104 ::
收藏到网摘: n/a

永远不要给用户直接访问表的权限。如果你希望让用户使用交互式工具如Microsoft Acess 2000来访问数据库,可以只给他们访问视图和存储过程的权限,而不是对表的直接访问权限。如果存储过程的拥有者是“dbo”,而且存储过程所引用的表和视图的拥有者也都是“dbo”,给予用户对存储过程的执行(EXECUTE)权限就足够了。这样就根本不用检查对表的访问权限了。

你还可以使用其它安全特性,比如通过在存储过程中加入商业逻辑来控制哪些字段或行能够被访问。视图是阻止用户直接访问表的另一种途径。与存储过程的区别是,你可以为视图授予SELECT、INSERT、UPDATE或DELETE权限,而存储过程则只能授予EXECUTE权限。

还有一件需要注意的事情是,如果你在另外一个数据库中执行SELECT语句,数据库对象拥有者的的链式关系仍然适用。比如说,在由SQL Server登录名“sa”所拥有的pubs数据库中,你就不能执行跨表查询连接至被一个NT登录名所拥有的数据库中,即使两个登录名都是“sysadmin”角色的成员。如果你希望连接来自3个不同数据库的表,那么这3个数据库的拥有者应该是同一个帐号。如果需要的话你可以使用存储过程“sp_changedbowner”来改变数据库的拥有者。