2

我正在尝试设置要从服务代理队列运行的 CLR 存储过程,以便 CLR 存储过程作为数据库所有者运行。

我已经尝试了各种组合,但如果不以 CLR 存储过程中的用户(使用用户名和密码)身份登录,就无法使其工作。

CLR 存储过程正在访问文件系统,我只希望它能够访问拥有数据库的 windows 用户允许的文件夹。

4

1 回答 1

1

如果不向 Windows 提供密码,您将永远无法访问 SQL Server 之外的资源。EXECUTE AS 仅在引擎内部受信任,Windows(以及因此文件系统)完全有零理由信任这种模拟骗局。

SQL 中有一个特殊的结构来促进操作系统级别的模拟:CREATE CREDENTIAL,但它们仅在将 SQL 登录映射到 Windows 登录时才起作用。由于在您的情况下没有 SQL 登录开始,我不确定您是否可以获得 SQL Server 凭据来工作。

于 2013-04-29T16:41:51.223 回答