Partilhar via


Configuração do servidor: clr ativado

Aplica-se a:SQL Server

Utilize a opção clr enabled para especificar se o SQL Server pode executar assemblies de usuário. A clr enabled opção fornece os seguintes valores:

Valor Description
0 A execução de assembly não é permitida no SQL Server.
1 Execução de assemblies permitida no SQL Server.

Apenas para WOW64: reinicie os servidores WOW64 para aplicar essas alterações. Nenhuma reinicialização é necessária para outros tipos de servidor.

Quando executa RECONFIGURE e o valor da opção clr enabled é alterado de 1 para 0, todos os domínios de aplicativo que contêm assemblies de usuário são descarregados imediatamente.

Limitações

A execução CLR (Common Language Runtime) não é suportada em pool leve

Desative uma das duas opções: clr enabled ou lightweight pooling. Os recursos que dependem do CLR e que não funcionam corretamente no modo de fibra incluem o tipo de dados hierarchyid , a função, a FORMAT replicação e o Gerenciamento Baseado em Políticas. Para obter mais informações, consulte Configuração do servidor: pool leve.

Embora a opção de configuração clr enabled esteja habilitada no Azure SQL Database, o desenvolvimento de funções de usuário CLR não é suportado no Azure SQL Database.

A segurança de acesso ao código não é mais suportada

O CLR usa o CAS (Code Access Security) no .NET Framework, que não é mais suportado como um limite de segurança. Um assembly CLR criado com PERMISSION_SET = SAFE pode aceder a recursos externos do sistema, chamar código não supervisionado e adquirir privilégios de administrador do sistema. No SQL Server 2017 (14.x) e versões posteriores, a opção sp_configure, segurança estrita do CLR, aumenta a segurança dos assemblies CLR. clr strict security está ativado por padrão e trata as assemblagens SAFE e EXTERNAL_ACCESS como se estivessem marcadas UNSAFE. A opção clr strict security pode ser desativada para compatibilidade com versões anteriores, mas não é recomendada.

Recomendamos que você assine todos os assemblies por um certificado ou chave assimétrica, com um logon correspondente que tenha recebido permissão UNSAFE ASSEMBLY no banco de dados master. Os administradores do SQL Server também podem adicionar assemblies à lista de assemblies, nos quais o motor de base de dados deve confiar. Para obter mais informações, consulte sys.sp_add_trusted_assembly.

Examples

O exemplo a seguir exibe primeiro a configuração atual da opção e, em seguida, habilita a opção definindo o valor da clr enabled opção como 1. Para desativar a opção, defina o valor como 0.

EXECUTE sp_configure 'clr enabled';
EXECUTE sp_configure 'clr enabled', '1';
RECONFIGURE;