我正在使用SERVER 2012 SP1速成版。
我想将两个程序集添加到我的数据库中,因为我正在创建一个存储过程来访问WCF SOAP服务。我跟踪这个教程来做它。
在那篇教程里,我说我必须这样做:
alter database [MyDemoDB]
set trustworthy on;
go但我不想使用set trustworthy on;。因此,按照另一个教程,我必须从非对称密钥创建一个登录名。
问题是我有两个程序集,我不知道如何使用两个ASYMMETRIC KEY创建登录,也不知道是否有必要。
现在我有了这个SQL:
CREATE ASYMMETRIC KEY CodeServerDBKey FROM EXECUTABLE FILE = 'D:\CodeServerDB.dll'
CREATE ASYMMETRIC KEY CodeServerWCFClientKey FROM EXECUTABLE FILE = 'D:\CodeServerWCFClient.dll'
CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY CodeServerDBKey, CodeServerWCFClientKey
GRANT EXTERNAL ACCESS ASSEMBLY TO SQLCLRTestLogin 是否需要使用两个非对称键创建登录?
顺便说一下,CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY CodeServerDBKey, CodeServerWCFClientKey不起作用。
发布于 2014-05-26 09:06:43
您需要创建两个登录并授予每个登录的外部访问权限。但是,是否确定这两个程序集都需要外部访问?只有真正使用特权的人才能被授予特权。
另外,从SQLCLR访问HTTP是一个非常糟糕的主意。让您的客户端应用程序发出缓慢、阻塞、不可靠的呼叫,不要劫持宝贵的服务器工作人员来等待intertubez。如果您决定忽略这一点,至少要确保您在放置HTTP请求之前阅读了有关量子惩罚并正确地调用了Thread.BeginThreadAffinity()。
https://stackoverflow.com/questions/23866349
复制相似问题