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;