Partilhar via


Configuração do servidor: clr strict security

Aplica-se a:SQL Server

Controla a interpretação da permissão SAFE, EXTERNAL_ACCESS ou UNSAFE no SQL Server. Para obter mais informações sobre essas permissões, consulte Projetar assemblies.

Valor Descrição
0 Desativado. Fornecido para compatibilidade com versões anteriores. Não é recomendado definir este valor 0 , pois pode criar uma vulnerabilidade de segurança.
1 Ativado. Faz com que o Mecanismo de Banco de Dados ignore as informações sobre os assemblies PERMISSION_SET e os interprete sempre como UNSAFE. No SQL Server 2017 (14.x) e versões posteriores, 1 é o valor padrão.

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 em versões posteriores, clr strict security trata as montagens SAFE e EXTERNAL_ACCESS como se estivessem marcadas UNSAFE.

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.

Observações

Quando a opção PERMISSION_SET nas instruções CREATE ASSEMBLY e ALTER ASSEMBLY está ativada, ela é ignorada em tempo de execução, mas as opções PERMISSION_SET são preservadas nos metadados. Ignorar essa opção minimiza a quebra de instruções de código existentes.

CLR strict security é um advanced option.

Depois de ativar a segurança estrita, todos os assemblies que não estão assinados não conseguem ser carregados. Você deve ou alterar ou remover e recriar cada assembly para que esteja assinado com um certificado ou chave assimétrica que tenha um login correspondente com a UNSAFE ASSEMBLY permissão no servidor.

Permissões

Alterar esta opção

Requer CONTROL SERVER permissão ou associação à função fixa de servidor sysadmin.

Criar um assembly CLR

As seguintes permissões são necessárias para criar um assembly CLR quando CLR strict security habilitado:

  • O usuário deve ter a CREATE ASSEMBLY permissão

  • Uma das seguintes condições também deve ser verdadeira:

    • A montagem é assinada com um certificado ou chave assimétrica que tem um login correspondente com a permissão UNSAFE ASSEMBLY no servidor. Recomenda-se assinar o assembly.

    • O banco de dados tem a TRUSTWORTHY propriedade definida como ON, e o banco de dados é de propriedade de um login que possui a permissão UNSAFE ASSEMBLY no servidor. Esta opção não é recomendada.

Exemplos

O exemplo a seguir exibe primeiro a configuração atual da opção e, em seguida, define o valor da clr strict security opção como 1 (enabled).

EXECUTE sp_configure 'clr strict security';
GO

EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO