Nie należy wyłączać Gość bazy danych msdb w programie SQL Server

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 2539091 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Streszczenie

SQL Server Books Online zaleca wyłączenie użytkownika Gość w każdej bazie danych jako najlepsze praktyki dotyczące zabezpieczania serwera bazy danych. Zalecenie to nie dotyczy tomaster, msdb i bazy danych systemu tempb.Niektóre funkcje programu Microsoft SQL Server do pracy, aby użytkownika Gośćmusi być włączona w bazę danych msdb. W tym artykule opisano kilka problemów, które mogą wystąpić po wyłączeniu Gość bazy danych msdb. Artykuł zawiera również informacje o sposobach rozwiązywania tych problemów.

Aby uzyskać więcej informacji na temat tego zalecenia w dokumentacji SQL Server Books Online odwiedź następującą witrynę sieci Web Microsoft Developer Network (MSDN):

Informacje dotyczące ograniczania dostępu do danych w programie SQL Server

Więcej informacji

Symptomy, gdy użytkownik Gość jest wyłączone w bazie danych msdb

Gdy użytkownik Gość jest wyłączona w bazie danych msdb, może pojawić się błąd 916gdy węzeł bazy danych Management Studio rozszerza lub serverapplication, takie jak OCS próbuje połączyć się SQL Server.You może wystąpić jeden lub więcej z następujących symptomów w danym środowisku występuje ten problem.

NOTETekst błędu może nieznacznie różnić się, w zależności od scenariusza. Jednak przyczyna jest zasadniczo taki sam. Przyczyną tego jest niewystarczające uprawnienia w bazie danych msdb. Dwa pierwsze symptomy występują po Object Explorer usiłuje wyświetlanie stanu zarządzania zasadami każdej bazy danych. Eksplorator obiektów używa uprawnienia logowania bieżącej kwerendy bazy danych msdb takich informacji, który powoduje błąd.

Symptom 1

W środowisku programu SQL Server 2008 i programu SQL Server 2008 R2 gdy użytkownik, który nie jest członkiem Sysadmin rola serwera w programie SQL Server i gdzie indziej przyznane odpowiednie uprawnienia w msdb próbuje rozwiń węzeł bazy danych lub z folderów w tym węźle, otrzymają komunikat o błędzie podobny do następującego:

Nie można pobrać danych dla tego żądania. (Microsoft.SqlServer.Manager.Sdk.Sfc)

Informacje dodatkowe:

Wystąpił wyjątek podczas wykonywania instrukcji języka Transact-SQL lub partii.

(Microsoft.SqlServer.ConnectionInfo)

Główny serwer <Servername>nie jest w stanie dostępu do bazy danych "msdb" w bieżącym kontekście zabezpieczeń. (Microsoft SQL Server, błąd: 916)</Servername>

UwagaRozwijając węzeł bazy danych jest jednym z działań, które wymagapołączeniauprawnienia dla konta Gość na msdbdatabase. Podobny błąd może wystąpić z żadnej działalności, która wymaga co najmniej minimalne dostępu do bazy danych themsdb.

Symptom 2

W programie SQL Server 2005 gdy użytkownik, który nie jest członkiem stałej roli serwera w programie SQL Server Sysadmin i który nie otrzymuje w przeciwnym razie odpowiednie uprawnienia w msdb, można rozwinąć węzeł bazy danych. Jednakże kiedy użytkownik próbuje wyświetlić właściwości bazy danych, otrzymali następujący komunikat o błędzie:

Nie pokazuj żądanego okna dialogowego.

INFORMACJE DODATKOWE:
Nie pokazuj żądanego okna dialogowego. (SqlMgmt)
Wystąpił wyjątek podczas wykonywania instrukcji języka Transact-SQL lub partii. (Microsoft.SqlServer.ConnectionInfo)
Główny serwer głównej nazwy nie jest w stanie dostępu do bazy danych "msdb" w bieżącym kontekście zabezpieczeń. (Microsoft SQL Server, błąd: 916)

UwagaKomunikat o błędzie występuje nawet wtedy, gdy użytkownik jest członkiem roli dbo w tej bazie danych.

Symptom 3

Jednego z produktów, spowodowanym opisywaną usterką jest Microsoft Office Communications Server 2007 (OCS 2007). Usługi typu front-end nie są uruchamiane, gdy użytkownik próbuje uruchomić serwer. Dodatkowo możesz zobaczyć następujący komunikat o błędzie w Podglądzie zdarzeń:

Typ zdarzenia: błąd
Źródło zdarzenia: Usługi użytkownika OCS
Kategoria zdarzenia: (1006)
Identyfikator zdarzenia: 30962
Data: Data
Czas: czas
Użytkownik: n/d!
Komputer: nazwa_komputera
Opis: Połączenie bazy danych zaplecza zakończyła się pomyślnie, ale nie można wykonać procedurę rejestracji przechowywane back-end. Ten błąd nie powinien wystąpić w normalnych warunkach pracy. Kontaktu z pomocą techniczną.
Serwera typu back-end: Baza danych nazwa_serwera : rtc błąd macierzysty Sql: 916 ciąg połączenia: sterownik = {programu SQL Native Client};Trusted_Connection = yes;AutoTranslate = no; serwer =nazwa_serwera; database = rtc;
Przyczyna: Możliwe problemy z wewnętrznej bazy danych.
Rozdzielczość:
Upewnij się, że działa poprawnie back-end.
Aby uzyskać więcej informacji zobacz Pomoc i obsługa techniczna w http://go.microsoft.com/fwlink/events.asp.

Aby uzyskać więcej informacji zobacz następujące wątek na forum pomocy technicznej OCS:

http://social.microsoft.com/forums/en-us/communicationsserversetup/Thread/8b428bd3-0509-4859-ac11-122bdbef06cc

Jak określić problem

Aby ustalić, czy użytkownik Gość jest poprawnie skonfigurowany w bazie danych msdb, uruchom następującą kwerendę jako członek roli serwera 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

Jeśli zostanie wyświetlony zestaw wyników o podobny do następującego, gość ma odpowiednie uprawnienia.
Zwiń tę tabelęRozwiń tę tabelę
grantee_nameKlasaclass_descmajor_idminor_idgrantee_principal_idgrantor_principal_idTyppermission_nameStanstate_desc
Gość0BAZY DANYCH0021COPOŁĄCZGDOTACJI

Jeśli zostanie wyświetlony zestaw wyników puste lub jeśli state_desc pokazuje ODMÓW w wyniku zestawu, który wspomniano tutaj, Gość jest wyłączona w bazie danych msdb. Otrzymasz błąd 916 podczas łączenia się z bazą danych.

Jak rozwiązać problem

Aby rozwiązać ten problem, uruchom następującą kwerendę w programie SQL Server Management Studio jest członkiem stałej roli serwera sysadmin:

USE msdb;

GRANT connect TO guest;

GO


Właściwości

Numer ID artykułu: 2539091 - Ostatnia weryfikacja: 24 czerwca 2014 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • 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
Słowa kluczowe: 
kbsurveynew kbexpertiseadvanced kbtshoot kbprb kbmt KB2539091 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł został przetłumaczony przy użyciu oprogramowania firmy Microsoft do tłumaczenia maszynowego i może być poprawiony przy użyciu technologii Community Translation Framework (CTF). Firma Microsoft udostępnia artykuły tłumaczone maszynowo, poprawione przez społeczność, a także tłumaczone przez tłumaczy profesjonalnych, aby zapewnić dostęp do wszystkich artykułów w bazie wiedzy w wielu językach. Artykuły tłumaczone maszynowo i poprawione mogą zawierać błędy pisowni, składniowe i gramatyczne. Firma Microsoft nie ponosi odpowiedzialności za żadne nieścisłości, błędy ani szkody spowodowane przez niepoprawne tłumaczenia zawartości ani przez korzystanie z niej przez klientów. Więcej o strukturze CTF: http://support.microsoft.com/gp/machine-translation-corrections/pl.
Anglojęzyczna wersja tego artykułu to: 2539091

Przekaż opinię

 

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