【发布时间】:2018-08-24 19:05:03
【问题描述】:
我在 VS 中有一个数据库项目,并试图在 SQL Server 中从 dll 生成一个非对称密钥。在 SSMS 中,我尝试运行以下命令:
CREATE ASYMMETRIC KEY MyNewKey
FROM EXECUTABLE FILE = N'C:\{path to dll}\MyDBProj.dll'
我得到的错误是“证书、非对称密钥或私钥文件无效或不存在;或者您没有权限。”
有问题的 dll 是使用 SQLCLR 权限级别 = SAFE 构建的
我的假设是它与文件权限有关,但我不知道我需要在文件上允许哪些安全权限才能实现这一点。我被告知我应该授予 NETWORK SERVICE 帐户读取权限,我照做了。
这是在具有混合模式身份验证的本地数据库上。我已经以 Windows 用户和 sa 帐户的身份进行了尝试。
【问题讨论】:
-
你需要转义你的斜线吗? FWIW
-
您可以首先授予每个人对该文件的完整权限...以确保您的 SQL 代码完美无缺...。当这样工作时,删除权限并磨练您 SQL 使用的确切安全帐户... 可能是 SQL 代理,而不仅仅是 SQL Server 帐户
-
@Grantly:我不这么认为。我见过的例子都没有转义字符。
标签: sql-server sqlclr encryption-asymmetric