Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 ASSEMBLYpermissãoUma 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 ASSEMBLYno servidor. Recomenda-se assinar o assembly.O banco de dados tem a
TRUSTWORTHYpropriedade definida comoON, e o banco de dados é de propriedade de um login que possui a permissãoUNSAFE ASSEMBLYno 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
Conteúdo relacionado
- Opções de configuração do Server
- sp_configure (Transact-SQL)
- Configuração do servidor: clr ativado