sql server2005用户和架构分离特性探讨

sql server2005用户和架构分离特性探讨

ID:12165739

大小:28.50 KB

页数:8页

时间:2018-07-16

sql server2005用户和架构分离特性探讨_第1页
sql server2005用户和架构分离特性探讨_第2页
sql server2005用户和架构分离特性探讨_第3页
sql server2005用户和架构分离特性探讨_第4页
sql server2005用户和架构分离特性探讨_第5页
资源描述:

《sql server2005用户和架构分离特性探讨》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQLServer2005用户和架构分离特性探讨.数据库与信息管理......电脑知识与技术SQLServer2005用户和架构分离特性探讨周德伟(湖南财经高等专科学校,湖南长沙410205)摘要:SQLServer2005中加入了非常丰富的安全特性,以保证为数据应用提供更为严密的全新安全性设计.其中用户和架构分离,这一新特性对应用程序开发者来说是非常重要的改进.本文从应用程序开发者角度出发,探讨如何在应用程序中运用这一新的安全特性.关键词:SQLServer2005;用户和架构分离;数据库安全中图分类号:TP3

2、11文献标识码:A文章编号:1OO9—3o44(2006)20-0037—02TheNewSecurityFeatureofUser/SchemaSeparationInSQLServer2005ZHoUDe—wei(HunanFinancial&EconomicCollege,Changsha410205,China)Abstract:SQLServer2005SmanylayersofsecurityprovidefordefenseindepthinwhichlayeraKerlayerofprote

3、ctionhelpske印datasafe.User/Schemaseparationisamajorfeatureinregardstodatabasesecuritythatmostinterestingasadeveloper.Inthisarticle,1willexplorehowtoapplythenewsecurityfeaturewhendevelopersdesignandimplementSQLServer—basedapplications.Keywords:SQLServer2005;use

4、r/schemaseparation;databasesecurity1问题的提出SQLServer2000及其以前的版本模糊了用户和架构区别,更确切地说.在SQLServer2000中,用户和架构是同一回事.图1显示了SQLSerCer2000的这种情况.当eaml登录到数据库,用既非所有者也非管理员身份创建一个对象,对象名有前缀Carol,从概念上讲SQLServer产生了一个架构隐藏在用户背后.但实际上你没法独立于用户处理和修改架构.其后果是改变所有者就需要涉及每个对象和使用这些名字的代码.图1SQLserv

5、er2000中的用户和架构下面用代码进一步演示在SQLSever2000中出现的问题:假定Userl不是数据库的所有者或系统管理员角色,若以Userl登录,创建了表User1.table1:CREATETABLEtable1(tIDinOG0运行以下的select命令SEI正CTFROMdbo.table1一一错!SELECTFROMtable1一Userl可以运行!SELECTFROMUser1.tablel~可以运行!对dbo.table1输入select命令将出错,因为没有这样命名的表存在.第二行代码,因为S

6、QLServer用当前用户名作为默认选项,所以只有Userl对tablel能使用select命令,而其他用户是找不到table1的.但是任何一个具有适当权限的用户都能对表User1.table1使用select语句,因为在数据库中这是一个明确的对象名.由于指定的用户名是对象名的一部分,当你不得不改变对象的所有权时,将会导致很多问题.假定Bob最初创建了一个表,使得对象名为Bob.MyTable.,在项目开发过程中,Bob创建了几百个其他对象,包括表,存储过程,视图等等.现在,Bob因为某种原因离开了.Floyd接了

7、Bob在项目中的角色,为了系统的安全,管理员要取消Bob的所有权限,并删除用户Bob.但除非管理员把这几百个对象的每一个都指定给新用户Floyd,否则,管理员就不能删除用户Bob,遍及整个公司和客户的应用程序中涉及到Bob.MyTable的对象也都必须更新.即使是用自动代码生成工具,这也得花不少时间,这简直是一场恶梦.这就是为什么Microsoft强烈推荐所有的对象由dbo所有,而用其他方法来解决安全问题.2用户和架构分离在SQLServer2005中,如SQL一99所定义,架构本质上是对象的容器.反过来,它可以被

8、用户所拥有,如图2所示.现在,当Carol离开公司.管理员所要做的只是改变carol所拥有的架构的所有权.即使一个架构可能有几千个对象,采用这种方法既安全又简单明了.图2SQLserver2005中的用户和架构3应用分析因为SQLServer2005在创建用户时不再自动产生一个与用户名同名的架构,现在你必须明确的创建架构,并将其所有权指定给用户,然后创建和添

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。