Eu executo o relatório de avaliação de vulnerabilidade no SQL Server 2016 e recebi este problema
VA1102 O bit confiável deve ser desabilitado em todos os bancos de dados, exceto MSDB
O motivo de configurar Trustworthy para ON no meu caso é que o DB Owner do banco de dados precisa ter acesso a um banco de dados diferente para leitura de dados (especificamente o procedimento armazenado é executado como proprietário e lê os dados de outro banco de dados).
Minha pergunta é como conseguir o mesmo sem configurar confiável para o que pode expor o servidor a vulnerabilidades?
Isso é verdade.
Isso não é verdade.
Felizmente, isso é super fácil, quase um inconveniente ? graças ao Module Signing. Tudo que você precisa fazer é:
É isso! Obviamente, isso pressupõe que você não está usando
WITH EXECUTE AS ...
em sua definição de proc / function / trigger, pois isso complica um pouco as coisas (e em breve abordarei isso em sua pergunta relacionada ). Mas, essa suposição deve ser boa, pois o motivo declarado para precisar dela (para ter acesso de leitura no outro banco de dados) não é um problema neste momento, pois o Module Signing cuida disso.Por favor, veja a demonstração abaixo, que empresta muito do seu código de reprodução postado em sua pergunta relacionada (para consistência)
Configuração inicial
Teste
Configurar a assinatura do módulo
Teste novamente
Para obter mais informações sobre a assinatura de módulo em geral, consulte meu site:
https://ModuleSigning.Info/