A TRUSTWORTHY
configuração pode ser bastante perigosa se você não tomar cuidado e, exceto em circunstâncias específicas, a recomendação é mantê-la desativada. No entanto, por padrão, o MSDB
banco de dados foi TRUSTWORHTY
definido ON
por padrão. Estou curioso por quê?
Eu li esta entrada no BOL
Nota Por padrão, a configuração TRUSTWORTHY está definida como ON para o banco de dados MSDB. Alterar essa configuração de seu valor padrão pode resultar em um comportamento inesperado dos componentes do SQL Server que usam o banco de dados MSDB.
Mas estou curioso sobre detalhes. Por que especificamente a MSDB
necessidade está TRUSTWORTHY
ativada? Que funções o utilizam?
sql-server
sql-server-2008-r2
sql-server-2012
sql-server-2014
security
Kenneth Fisher
fonte
fonte
TRUSTWORTHY
paramsdb
ver o que para de funcionar e você terá pelo menos parte da resposta :). Achei que o BACKUP teria problemas, mas tentei e conseguiu.Respostas:
Existem dezenas de objetos
msdb
nessa referência aomaster
banco de dados.Se msdb não estivesse marcado como
TRUSTWORTHY
, os usuários precisariam de permissão para omsdb
objeto com o qual estão interagindo, além domaster
objeto que está sendo referenciado.Por exemplo, os usuários do msdb que obtêm permissões por meio da função de banco de dados SQLAgentUserRole recebem permissão para executar
msdb.dbo.sp_enum_sqlagent_subsystems
. A pilha de chamadas para esse procedimento eventualmente atingemaster
:Se
msdb
não estiver marcado comoTRUSTWORTHY
, os usuários que fazem parte da função de banco de dados SQLAgentUserRole TAMBÉM precisarão executar permissãomaster.dbo.xp_instance_regread
.Tecnicamente falando, provavelmente é possível remover a
TRUSTWORTHY
configuraçãomsdb
e conceder permissões específicas nomaster
. No entanto, essas permissões necessárias não são documentadas nem suportadas.fonte