AWS SQL Server 2017 RDS上的SQLCLR支持

时间:2019-07-23 10:26:13

标签: sql-server amazon-rds sqlclr

我需要在AWS SQL Server 2017 RDS中加载程序集。

我在文档中找不到它。这可能吗?如果是,那怎么办?

这类似于“ SQL Server CLR stored procedures in AWS?”,但不是其副本,因为我需要在SQL Server 2017 AWS中创建程序集,并且在此版本中无法将参数clr enabled更改为1 ,而该问题或答案中未解决。

3 个答案:

答案 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

  1. 由于“安全原因”,Aws 不允许将“CLR 严格安全性”设置为 false。 (这是一个错误的决定,因为 proved hereSolomon Rusky。...如果是这样,他们也会为 2017 之前的版本禁用 CLR。​​)
  2. sp_add_trusted_assembly 无法使用,因为 "master" RDS user account 不是“sysadmin”的成员,也没有“CONTROL SERVER”权限。
  3. 您无法向登录授予“不安全汇编”权限 (see the "Microsoft SQL Server security" section),这是 other, more complicated approach 使 CREATE/ALTER ASSEMBLY 工作所必需的。