Fala pessoal, no post de hoje vou falar sobre a propriedade confiável no SQL Server (trustworthy).
Algumas opções de configuração do banco de dados dentro do SQL são pouco usadas, mas saiba que todas elas tem uma função especifica e que em algum momento você pode precisar usar. A propriedade de banco de dados TRUSTWORTHY é usada para indicar se a instância do SQL Server confia no banco de dados e no que ele esta executando.
De forma padrão, esta configuração vem como OFF, mas você pode defini-la como ON usando a instrução ALTER DATABASE (precisa ser sysadmin para realizar essa ação).
Essa propriedade tem como função diminuir os riscos que podem acontecer ao "attachar" uma base de dados que utilize Assemblies (com definição UNSAFE ou EXTERNAL_ACCES) e processos executados com alteração de contexto de permissão para usar privilégios mais altos. Essas duas situações exigem um grau específico de privilégios e estão protegidas pelos mecanismos adequados dentro da instância do SQL Server.
Quando você "attacha" um banco ou restaura um backup, mesmo que anteriormente o mesmo estivesse configurado com TRUSTWORTHY ON, ele sobe com a opção desabilitada para garantir que não terá nenhuma brecha na instância com essa ação.
A propriedade permite que um usuário do banco de dados represente outro usuário usando a instrução 'execute as'.
Isso é útil quando um usuário do banco precisa acessar recursos fora do banco de dados. Alguns exemplos de quando a propriedade confiável pode ser útil são:
Precisa acessar recursos no nível do servidor.
Precisa acessar outros bancos de dados na mesma instância.
Existe um risco ao usar a propriedade confiável. Se um usuário específico no banco de dados no qual você definiu a confiança for um membro da função ‘db_owner’, ele poderá representar a função SYSADMIN.
Eu diria que é uma boa prática não alterar o banco para confiável. Porém pode haver razões de negócio e arquitetura para utilizar esse formato, esteja ciente dos riscos e falhas que essa configuração pode abrir.
Uma boa recomendação para evitar esse tipo de problema é definir um usuário owner diferente para cada banco (com nome diferente). Como DBA recomendo que você sempre deixe essa opção confiável como OFF e só habilite em caso de real necessidade, tudo o que você puder fazer para proteger o seu ambiente deve ser levado a adiante.
99% dos ambientes em que atuei e atuo até hoje não precisam dessa funcionalidade, então como boa pratica sempre deixo OFF.
Nos acompanhe em nossas redes sociais!
Youtube(vídeos novos todas as quartas): https://www.youtube.com/channel/UChFeqc-m7HZNdkoP0CshMGQ
Face & Instagram(conteúdo diário): dba on boarding
Até a próxima, tchau!
Comments