使用两个非对称密钥创建一个登录



我正在使用SQL SERVER 2012 SP1 Express版。

我想在数据库中添加两个程序集,因为我要创建一个存储过程来访问WCF SOAP服务。我按照这个教程来做。

在那个教程中说我必须这样做:

alter database [MyDemoDB]
set trustworthy on;
go

但是我不想用set trustworthy on;。因此,按照这另一个教程,我必须创建一个非对称密钥登录。

问题是我有两个程序集,我不知道如何创建一个登录与两个ASYMMETRIC KEY s或如果它是必要的。

现在我有了这样的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 

我需要用两个非对称密钥创建登录吗?

BTW, CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY CodeServerDBKey, CodeServerWCFClientKey不工作

您需要创建两个登录并授予每个登录的外部访问权限。但你确定两个组件都需要外部访问吗?只有实际使用该权限的人才应该被授予。

除此之外,从SQLCLR访问HTTP是一个非常糟糕的主意。让您的缓慢,阻塞,不可靠的呼叫从您的客户端应用程序,不要劫持宝贵的服务器工作者等待在管道上。如果您决定忽略这一点,至少要确保在放置HTTP请求之前阅读了量子惩罚并正确调用Thread.BeginThreadAffinity()

最新更新