Você não deve desabilitar o usuário convidado do banco de dados msdb em SQL Server

Artigo: 2539091 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Livros Online recomenda que você desative o usuário convidado em cada banco de dados como uma prática recomendada para proteger o servidor de banco de dados. Essa recomendação não se aplica aos bancos de dados de sistema master, msdb e tempb. Para alguns recursos de Microsoft SQL Server trabalhar, o usuário convidadodeve ser habilitado no banco de dados msdb. Este artigo descreve alguns problemas que podem ocorrer se você desabilitar o usuário convidado do banco de dados msdb. O artigo também fornece informações sobre como resolver esses problemas.

Para obter mais informações sobre esta recomendação no Books Online, visite o seguinte site da Microsoft Developer Network (MSDN):

Informações sobre como limitar o acesso a dados em SQL Server

Mais Informação

Sintomas quando o usuário convidado está desabilitado no banco de dados msdb

Quando o usuário convidado está desabilitado no banco de dados msdb, você poderá receber o erro 916Quando o nó bancos de dados no Management Studio expande ou quando um aplicativo de servidor, como o OCS tenta se conectar ao SQL Server. Você pode enfrentar um ou mais dos seguintes sintomas em seu ambiente quando esse problema ocorre.

Note O texto do erro ligeiramente pode variar, dependendo do cenário. No entanto, a causa subjacente é essencialmente o mesmo. Essa causa é a privilégios insuficientes no banco de dados msdb. Os dois primeiros sintomas ocorrem quando Object Explorer tenta mostrar o status de gerenciamento de diretiva com base em cada banco de dados. Object Explorer usa as permissões do logon atual para consultar o banco de dados msdb essas informações, o que causa o erro.

Sintoma 1

Em ambientes de 2008 de SQL Server e SQL Server 2008 R2, quando um usuário que não seja um membro de Sysadmin, função de servidor fixa em SQL Server e não tenha permissões apropriadas no msdb tenta expandir o nó bancos de dados ou qualquer uma das pastas sob o nó, recebem uma mensagem de erro semelhante à seguinte:

Falha ao recuperar dados para esta solicitação. (Microsoft.SqlServer.Manager.Sdk.Sfc)

Informações adicionais:

Ocorreu uma exceção ao executar uma instrução do Transact-SQL ou lote.

(Microsoft.SqlServer.ConnectionInfo)

O principal <servername> do servidor não é capaz de acessar o banco de dados "msdb no contexto de segurança atual. (Microsoft SQL Server, erro: 916)</servername>

Observação Expandindo o nó de banco de dados é apenas uma das atividades que requerconectarpermissão para a conta de convidado no banco de dados msdb. Um erro semelhante pode ocorrer com qualquer atividade que requer o mínimo de pelo menos acesso ao banco de dados msdb.

Sintoma 2

No SQL Server 2005, quando um usuário que não é um membro de Sysadmin função de servidor fixa em SQL Server e quem não é concedido permissões apropriadas no msdb caso contrário, poderá expandir o nó de bancos de dados. No entanto, quando o usuário tenta exibir as propriedades de um banco de dados, eles recebem a seguinte mensagem de erro:

Não é possível mostrar a caixa de diálogo solicitada.

INFORMAÇÕES ADICIONAIS:
Não é possível mostrar a caixa de diálogo solicitada. (SqlMgmt)
Ocorreu uma exceção ao executar uma instrução do Transact-SQL ou lote. (Microsoft.SqlServer.ConnectionInfo)
O principal do servidor Nome principal não é possível acessar o banco de dados "msdb no contexto de segurança atual. (Microsoft SQL Server, erro: 916)

Observação A mensagem de erro ocorre mesmo quando o usuário é um membro da função dbo nesse banco de dados.

Sintoma 3

Um dos produtos afetados por esse problema é que o Microsoft Office Communications Server 2007 (OCS 2007).  Os serviços de front-end não inicie quando você tenta iniciar o servidor. Além disso, você verá a seguinte mensagem de erro no Visualizador de eventos:

Tipo de evento: erro
Origem do evento: Serviços do OCS usuário
Categoria do evento: (1006)
Identificação do evento: 30962
Data: Data
Tempo: Tempo
Usuário: n/D
Computador: Nome_do_computador
Descrição: A conexão ao banco de dados de back-end bem-sucedida, mas falha ao executar o procedimento de registro armazenado no back-end. Este erro não deve ocorrer em condições operacionais normais. Entre em contato com o suporte ao produto.
Servidor back-end: Nome_do_servidor Banco de dados: o rtc erro nativo do Sql: 916 seqüência de conexão do: driver = {SQL Native Client};Trusted_Connection = yes;AutoTranslate = não; server =Nome_do_servidor; banco de dados = rtc;
Causa: Possíveis problemas com o banco de dados de back-end.
Resolução:
Certifique-se de que back-end está funcionando corretamente.
Para obter mais informações, consulte o Centro de ajuda e suporte em http://go.microsoft.com/fwlink/events.asp.

Para obter mais informações, consulte o seguinte segmento no Fórum de suporte do OCS:

http://social.microsoft.com/Forums/en-US/communicationsserversetup/thread/8b428bd3-0509-4859-ac11-122bdbef06cc

Como determinar o problema.

Para determinar se o usuário convidado está configurado corretamente no banco de dados msdb, execute a seguinte consulta como um membro da função de servidor fixa sysadmin:

USE msdb;

SELECT prins.name AS grantee_name, perms.*

FROM sys.database_permissions AS perms

JOIN sys.database_principals AS prins

ON perms.grantee_principal_id = prins.principal_id

WHERE prins.name = 'guest' AND perms.permission_name = 'CONNECT';

GO

Se você receber um conjunto de resultados que é semelhante ao seguinte, o usuário convidado tem as permissões necessárias.
Reduzir esta tabelaExpandir esta tabela
grantee_nameclasseclass_descmajor_idminor_idgrantee_principal_idgrantor_principal_idtipopermission_nameestadostate_desc
convidado0BANCO DE DADOS0021COCONECTARGGRANT

Se você receber um conjunto de resultados vazios ou se o state_desc mostra Negar no conjunto de resultado acima, o usuário convidado está desativada no banco de dados msdb. Você pode receber o erro 916 quando você se conectar a um banco de dados.

Como resolver o problema.

Para resolver o problema, execute a seguinte consulta no SQL Server Management Studio como um membro da função de servidor fixa sysadmin:

USE msdb;

GRANT connect TO guest;

GO

 

Propriedades

Artigo: 2539091 - Última revisão: sexta-feira, 22 de Julho de 2011 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
Palavras-chave: 
kbsurveynew kbexpertiseadvanced kbtshoot kbprb kbmt KB2539091 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2539091

Submeter comentários