【发布时间】:2013-04-23 06:31:41
【问题描述】:
我正在尝试设置从服务代理队列运行的 CLR 存储过程,以便 CLR 存储过程作为数据库所有者运行。
我已经尝试了各种组合,但如果不以用户身份(使用用户名和密码)登录 CLR 存储过程,则无法使其工作。
CLR 存储过程正在访问文件系统,我只希望它能够访问拥有数据库的 Windows 用户允许的文件夹。
【问题讨论】:
-
你不能只使用 EXECUTE AS OWNER 吗?抱歉,服务代理和 CLR 存储过程不是我的强项。
-
是的,我就是这样,数据库归 Windows 域用户所有,我的理解是激活的存储过程作为 dbo 运行。
-
Microsoft 自己的文档Impersonation and Credentials for Connections 包含处理在 CLR 存储过程中获取文件详细信息的示例代码。
标签: sql-server filesystems impersonation sqlclr service-broker