当前位置:  开发笔记 > 数据库 > 正文

检查SQL Server 2005存储过程中是否存在文件的最佳方法是什么?

如何解决《检查SQLServer2005存储过程中是否存在文件的最佳方法是什么?》经验,为你挑选了1个好方法。

我们在SQL Server 2000中使用了"未记录的"xp_fileexist存储过程多年,并且没有遇到任何问题.在2005年,如果执行的用户帐户不是系统管理员,它们似乎会略微修改行为以始终返回0.如果SQL Server服务在LocalSystem帐户下运行并且您尝试检查网络上的文件,它似乎也返回零.

我想摆脱xp_fileexist.有没有人有更好的方法从存储过程内部检查网络位置是否存在文件?



1> AdamSane..:

您必须将CLR标记为EXTERNAL_ACCESS才能访问System.IO命名空间,但是事情并非如此.

SAFE是默认权限集,但它具有高度限制性.使用SAFE设置,您只能访问本地数据库中的数据,以对该数据执行计算逻辑.EXTERNAL_ACCESS是权限层次结构中的下一步.此设置允许您访问外部资源,例如文件系统,Windows事件查看器和Web服务.SQL Server 2000及更早版本中无法进行此类资源访问.此权限集还限制了指针访问等操作,这些操作会影响程序集的健壮性.UNSAFE权限集假定完全信任程序集,因此不会产生"代码访问安全性"限制.此设置与扩展存储过程功能的方式相当 - 您假设所有代码都是安全的.然而,此设置会限制为具有sysadmin权限的用户创建不安全的程序集.Microsoft建议您尽可能避免创建不安全的程序集.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有