在 SQL Server 2000 上模拟 sp_OA*
Posted
技术标签:
【中文标题】在 SQL Server 2000 上模拟 sp_OA*【英文标题】:Impersonation for sp_OA* on SQL Server 2000 【发布时间】:2009-09-18 15:35:11 【问题描述】:有没有办法模拟 sp_OA* 调用?我专门将它用于文件系统管理,并且我在 TSQL 中做所有事情以避免 DTS,因为有可能升级到 2005 并且我希望这个解决方案是跨版本的。不幸的是,我需要访问远程文件系统,但我无法将 AD 权限添加到其中一台服务器的系统帐户中(尽管它运行生产 ETL 周期,但它在雷达下而不是在 AD 上)。有没有办法冒充这个?我也会采用 xp_cmdshell 解决方案;我只是希望完全可以避免同时为 DTS 和 SSIS 进行开发以及同时处理两个代码库。
同样,这不是模拟执行 SQL Server 对象;这是为了使用 SQL Server 系统帐户以外的帐户访问非 SQL Server 资源。我能够找到的唯一解决方案涉及 2005+ 上的 SQLCLR,而不是无论如何我都能够部署程序集。 (我是 IT 以外的顾问,并且涉及政治问题。)
【问题讨论】:
【参考方案1】:不,sp_OA 在服务帐户的上下文中运行。
`xp_cmdshell' 有一个 proxy option (different in SQL 2000) 虽然它可能会起作用。
在 SQL Server 2005 中,默认情况下它被锁定得更多(如 sp_OA%),因此这在政治上可能不合适。我们仍然有一些针对 SQL 2005 运行的旧版 DTS 包(使用 dtsrun,来自文件系统),因此它仍然可用并且有一个 SSM 插件来管理它们。
【讨论】:
代理帐户是最接近的,尽管 xp_cmdshell 不太理想,因为我必须解析控制台消息以进行错误捕获。哦,好吧。以上是关于在 SQL Server 2000 上模拟 sp_OA*的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2008,SP_OACreate手动执行成功,代理作业定时执行失败?
windows server 2003 64 位能不能支持 SQL 2000? 是需要安装SQL sp4的补丁吗? 顺求 2003 64位系统..
2003server r2 + sql 2000 sp4 环境配置