Segurança estrita do CLR
Aplica-se a:SQL Server
Controla a interpretação das permissões SAFE
, EXTERNAL ACCESS
e UNSAFE
no SQL Server.
Valor | Descrição |
---|---|
0 | Desabilitado – fornecido para fins de compatibilidade com versões anteriores. O valor Disabled não é recomendado. |
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 . Enabled é o valor padrão, começando com SQL Server 2017 (14.x). |
Aviso
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. A partir do SQL Server 2017 (14.x), uma opção sp_configure
chamada clr strict security
é introduzida, a fim de aumentar a segurança de 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 isso não é recomendado. A Microsoft recomenda que todos os assemblies sejam assinados por um certificado ou uma chave assimétrica com um logon correspondente que recebeu a permissão UNSAFE ASSEMBLY
no banco de dados mestre. 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 a opção minimiza a interrupção de instruções de código existentes.
CLR strict security
é um advanced option
.
Importante
Depois de habilitar 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
Para alterar essa opção
Exige a permissão CONTROL SERVER
ou a associação na função de servidor fixa sysadmin
.
Para criar um assembly CLR
As seguintes permissões necessárias para criar um assembly CLR quando o CLR strict security
está habilitado:
- O usuário deve ter a permissão
CREATE ASSEMBLY
- Além disso, uma 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 ASSEMBLY
no servidor. A assinatura do assembly é recomendada. - O banco de dados tem a propriedade
TRUSTWORTHY
definida comoON
e o banco de dados pertence a um logon que tem a permissãoUNSAFE ASSEMBLY
no servidor. Essa opção não é recomendada.
- O assembly é assinado com um certificado ou uma chave assimétrica que tem um logon correspondente à permissão
Consulte Também
Opções de configuração do servidor (SQL Server)
sp_configure (Transact-SQL)
Opção de configuração do servidor clr enabled
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de