Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Controla a interpretação das permissões SAFE, EXTERNAL_ACCESS ou UNSAFE no SQL Server. Para obter mais informações sobre essas permissões, consulte assemblies de design.
| Valor | Descrição |
|---|---|
0 |
Desabilitada. Fornecido para compatibilidade com versões anteriores. A definição desse valor 0 não é recomendada, pois pode criar uma vulnerabilidade de segurança. |
1 |
Habilitado. Faz com que o Mecanismo de Banco de Dados ignore as informações de PERMISSION_SET sobre os assemblies e sempre interprete-as 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 (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, clr strict security trata os assemblies SAFE e EXTERNAL_ACCESS como se estivessem marcados com UNSAFE.
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.
Comentários
Quando habilitada, a opção PERMISSION_SET nas instruções CREATE ASSEMBLY e ALTER ASSEMBLY é ignorada em tempo de execução, mas as opções PERMISSION_SET são preservadas nos metadados. Ignorar esta opção minimiza a interrupção de instruções de código existentes.
CLR strict security é um advanced option.
Depois de habilitar a segurança estrita, os assemblies que não estão assinados não serão carregados. Você deve alterar ou remover e recriar cada assembly, de modo que ele seja assinado com um certificado ou uma chave assimétrica que tem um logon correspondente à permissão UNSAFE ASSEMBLY no servidor.
Permissões
Alterar essa opção
Exige a permissão CONTROL SERVER ou a associação na função de servidor fixa sysadmin.
Criar um assembly CLR
As seguintes permissões são necessárias para criar um assembly CLR quando o CLR strict security está habilitado:
O usuário deve ter a permissão
CREATE ASSEMBLYUma das seguintes condições também deve ser verdadeira:
O assembly é assinado com um certificado ou uma chave assimétrica que tem um logon correspondente à permissão
UNSAFE ASSEMBLYno servidor. A assinatura do assembly é recomendada.O banco de dados tem a propriedade
TRUSTWORTHYdefinida comoONe o banco de dados pertence a um logon que tem a permissãoUNSAFE ASSEMBLYno servidor. Essa opção não é recomendada.
Exemplos
O exemplo a seguir primeiro mostra a configuração atual da opção clr strict security e define o valor da opção como 1 (habilitado).
EXECUTE sp_configure 'clr strict security';
GO
EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO