我需要在AWS SQL Server 2017 RDS中加载程序集。
我在文档中找不到它。这可能吗?如果是,那怎么办?
这类似于“ SQL Server CLR stored procedures in AWS?”,但不是其副本,因为我需要在SQL Server 2017 AWS中创建程序集,并且在此版本中无法将参数clr enabled
更改为1 ,而该问题或答案中未解决。
答案 0 :(得分:1)
我还没有在2017年试用过AWS,但是我在AWS 2016 SP1 CU2上进行了测试,并且可以正常工作。 IF 由于@Larnu链接的答案的评论中提到的Reddit讨论,AWS由于自2017年开始的“ CLR严格安全性”设置而不再支持该功能,这主要是由于Microsoft文档和AWS员工的一部分是不了解此功能,对其进行测试或不知道如何对其进行测试。我可以尝试与AWS支持联系,以了解有关如何在AWS中重新启用SQLCLR的信息,因为在几个级别上,他们都不允许使用SQLCLR,原因是他们陈述的理由是“ sp_add_trusted_assembly
是必需的”(不是),并且误导了它们(与许多其他事物一样),因为它们的汇编语言措词极其不正确,现在被视为“ UNSAFE
”(它们在操作上不是唯一的意义,仅是出于加载要求 em>)。
无论如何,从不支持从DLL创建,仅从VARBINARY
个立即数/十六进制字节创建。然后,您可以使用我创建的开源实用程序BinaryFormatter将DLL转换为VARBINARY
字符串。另外,请参阅我关于此的系列文章:
SQLCLR vs SQL Server 2017
答案 1 :(得分:1)
不幸的是,在2017年以后,它不受支持。即使您确实找到了破解设置并使其正常工作的方法,但当亚马逊决定中断时,它也绝不会得到亚马逊的支持。我们基于它可以在2016年正常运行这一事实而反复尝试使其运行,但是他们确实使用SQL Server 2017中的新安全设置完全禁用了它。我们最终坚持使用EC2的几个原因之一实例托管SQL Server,而不是RDS。
答案 2 :(得分:0)
我只是想确认一下,根据今天早些时候的支持聊天,RDS 中的 Sql2019 仍然不支持 CLR。
sp_add_trusted_assembly
无法使用,因为 "master" RDS user account 不是“sysadmin”的成员,也没有“CONTROL SERVER”权限。