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

Traduções deste artigo Traduções deste artigo
ID do artigo: 2539091 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Manuais Online do SQL Server 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 tomaster, msdb e bancos de dados de sistema de tempb.Para que alguns recursos do Microsoft SQL Server funcionar, o usuário convidadodeve ser ativada 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 nos Manuais Online do SQL Server, visite o seguinte site da Microsoft Developer Network (MSDN):

Informações sobre a limitação de acesso a dados no SQL Server

Mais Informações

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 expande o nó bancos de dados do Management Studio ou um serverapplication como o OCS tenta se conectar ao servidor SQL pode enfrentar um ou mais dos seguintes sintomas em seu ambiente quando esse problema ocorrer.

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

Sintoma 1

Em ambientes SQL Server 2008 e do SQL Server 2008 R2, quando um usuário que não seja um membro de Sysadmin função de servidor fixa no SQL Server e não as permissões apropriadas no msdb tenta expanda o nó bancos de dados ou qualquer uma das pastas sob esse nó, eles 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 Transact-SQL ou um lote.

(Microsoft.SqlServer.ConnectionInfo)

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

Observação:Expanda o nó banco de dados é apenas uma das atividades que exige permissão deconectar-separa a conta de convidado para o msdbdatabase. Um erro semelhante pode ocorrer com qualquer atividade que requer pelo menos mínimo acesso ao banco de dados themsdb.

Sintoma 2

No SQL Server 2005, quando um usuário que não seja um membro de Sysadmin função de servidor fixa no SQL Server e que 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 Transact-SQL ou um lote. (Microsoft.SqlServer.ConnectionInfo)
O principal do servidor Principal nome 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 no banco de dados.

Sintoma 3

Um dos produtos afetados por esse problema é o Microsoft Office Communications Server 2007 (OCS 2007). Os serviços de front-end não são iniciados quando você tentar 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 de usuário do OCS
Categoria do evento: (1006)
Identificação do evento: 30962
Data: data de
Hora: hora de
Usuário: n/d
Computador: nome_do_computador
Descrição: Conexão com banco de dados back-end foi bem-sucedida, mas falha ao executar o procedimento de registro armazenado no back-end. Este erro não deve ocorrer sob condições normais de operação. Entre em contato com o suporte ao produto.
Servidor de back-end: o banco de dados nome_do_servidor : rtc erro nativo do Sql: 916 string de conexão: 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 back-end.
Resolução:
Certifique-se de que o 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 consulta a seguir 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.
Recolher esta tabelaExpandir esta tabela
grantee_nameclasseclass_descmajor_idminor_idgrantee_principal_idgrantor_principal_idtipopermission_nameestadostate_desc
convidado0BANCO DE DADOS0021COCONECTAR-SEGCONCESSÃO

Se você receber um conjunto de resultado vazio ou se o state_desc mostra Negar no resultado definido que é mencionado aqui, que o usuário convidado está desabilitado 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

ID do artigo: 2539091 - Última revisão: terça-feira, 24 de junho de 2014 - Revisão: 6.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 Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
Palavras-chave: 
kbsurveynew kbexpertiseadvanced kbtshoot kbprb kbmt KB2539091 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 2539091

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com