Partilhar via


Configuração do servidor: clr habilitado

Aplica-se: SQL Server

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

Valor Descrição
0 Execução de assembly não permitida no SQL Server.
1 Execução de assembly permitida no SQL Server.

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

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

Limitações

Não há suporte para a execução de CLR (common language runtime) com lightweight pooling.

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 fibra incluem o tipo de dados hierarchyid, a função FORMAT, a replicação e o gerenciamento baseado em políticas. Para saber mais, veja Configuração de servidor: lightweight pooling.

Embora a opção de configuração clr enabled esteja no Banco de Dados SQL do Azure, não há suporte para o desenvolvimento de funções de usuário CLR no Banco de Dados SQL do Azure.

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

O CLR usa o CAS (Segurança de Acesso do Código) no .NET Framework, para o qual não há mais suporte como um limite de segurança. Um assembly CLR criado com o PERMISSION_SET = SAFE pode conseguir acessar recursos externos do sistema, chamar um código não gerenciado e adquirir privilégios sysadmin. No SQL Server 2017 (14.x) e versões posteriores, a opção a opção de sp_configure, clr strict security aprimora a segurança dos assemblies CLR. A clr strict security está habilitada por padrão e trata assemblies SAFE e EXTERNAL_ACCESS como se eles fossem marcados como UNSAFE. A opção clr strict security pode ser desabilitada para compatibilidade com versões anteriores, mas não é recomendado.

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

Exemplos

O exemplo a seguir primeiro mostra a configuração atual da opção clr enabled e habilita a opção configurando o valor da opção como 1. Para desabilitar a opção, defina o valor para 0.

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