首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不对称密钥使用权限不安全或EXTERNAL_ACCESS的程序集部署

使用不对称密钥使用权限不安全或EXTERNAL_ACCESS的程序集部署
EN

Database Administration用户
提问于 2018-12-03 08:21:57
回答 1查看 2.8K关注 0票数 3

当我们试图使用PERMISSION_SET=UNSAFE或EXTERNAL_ACCESS部署程序集时,Server将收到以下错误消息:

代码语言:javascript
复制
 CREATE ASSEMBLY for assembly 'System.ServiceModel.Internals' failed because 
 assembly 'System.ServiceModel.Internals' is not authorized for 
 PERMISSION_SET = UNSAFE.  The assembly is authorized when either of the 
 following is true: the database owner (DBO) has UNSAFE ASSEMBLY permission 
 and the database has the TRUSTWORTHY database property on; or the assembly 
 is signed with a certificate or **an asymmetric key that has a 
 corresponding login with UNSAFE ASSEMBLY permission.**

我们没有设置数据库trustworthy=ON,而是使用ALGORITHM = RSA_2048创建非对称密钥。以下是示例代码:

代码语言:javascript
复制
USE master; 
GO  

IF NOT EXISTS (SELECT 1 FROM sys.asymmetric_keys WHERE [name]='SampleClrKey')
BEGIN
      CREATE ASYMMETRIC KEY [SampleClrKey] WITH ALGORITHM = RSA_2048
      CREATE LOGIN [SampleClrLogin] FROM ASYMMETRIC KEY [SampleClrKey];  
      GRANT UNSAFE ASSEMBLY TO [SampleClrLogin];
 END
GO

但是这个错误并没有得到解决。我甚至为我的数据库和主数据库提供了对SampleClrLogin登录的sysadmin访问,但是它没有工作。你们能不能提供一些见解来解决这个问题。

EN

回答 1

Database Administration用户

发布于 2018-12-03 14:39:22

System.ServiceModel.Internals

你可以在那儿停下来。无法在SQL中使用WCF。SQL只支持纯MSIL程序集,而.NET 4.x中的WCF引用了一些混合模式程序集。

请参阅无法注册不在受支持列表中的.NET框架程序集

https://stackoverflow.com/questions/40349838/sql-server-2016-create-assembly-for-assembly-system-servicemodel-failed

如果要从SQL调用web服务,则可以使用WebClient API或较低级别的HttpWebRequest,这两者都是在System.dll中实现的。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/223976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档