MSSQLSERVER_916
Aplica-se: SQL Server
Detalhes
Atributo | Valor |
---|---|
Nome do produto | SQL Server |
ID do evento | 916 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | NOTUSER |
Texto da mensagem | A entidade de segurança do servidor "%.*ls" não é capaz de acessar o banco de dados "%.*ls" no contexto de segurança atual. |
Explicação
O logon não tem permissões suficientes para conectar-se ao banco de dados nomeado. Os logons que podem se conectar a essa instância do SQL Server, mas que não têm permissões específicas em um banco de dados, recebem as permissões do usuário convidado. Esta é uma medida de segurança para evitar que usuários em um banco de dados se conectem a outros bancos de dados em que não têm privilégios. Esta mensagem de erro pode ocorrer quando o usuário convidado não tem permissão CONNECT para o banco de dados nomeado e a propriedade confiável não está definida. Essa mensagem de erro poderá ser exibida quando o usuário convidado não tiver a permissão CONNECT para o banco de dados nomeado.
Quando a permissão CONNECT para o banco de dados msdb é negada ou revogada, o SQL Server Management Studio pode receber esse erro quando o Pesquisador de Objetos tenta mostrar o status do Gerenciamento Baseado em Políticas de cada banco de dados. O Pesquisador de Objetos usa as permissões do logon atual para consultar o banco de dados msdb quanto a essas informações, o que causa o erro. A seguinte mensagem de erro também ocorre:
Falha ao recuperar dados para esta solicitação. (Microsoft.SqlServer.Management.Sdk.Sfc)
Ação do usuário
Aviso
Para evitar esta medida de segurança, verifique se há uma compreensão clara sobre a autenticação de usuários em diversos bancos de dados. Os métodos a seguir talvez permitam que usuários tenham permissões em um banco de dados para se conectarem a outros bancos de dados que podem expor os dados a um usuário mal-intencionado. Quando os bancos de dados independentes estão habilitados, as etapas a seguir podem permitir que os proprietários de banco de dados em um banco de dados concedam acesso a outro banco de dados na instância do SQL Server.
Você pode se conectar ao banco de dados de uma das seguintes maneiras:
Concedendo ao logon específico acesso ao banco de dados nomeado. O exemplo a seguir concede ao logon
Adventure-Works\Larry
acesso ao banco de dadosmsdb
.USE msdb ; GO GRANT CONNECT TO [Adventure-Works\Larry] ;
Concedendo a permissão CONNECT ao banco de dados nomeado na mensagem de erro para o usuário convidado. O exemplo a seguir concede a permissão
CONNECT
ao banco de dadosmsdb
para o usuárioguest
.USE msdb ; GO GRANT CONNECT TO guest ;
Habilite a propriedade TRUSTWORTHY no banco de dados que tem o usuário autenticado.
ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;