Udostępnij za pośrednictwem


Troubleshooting Orphaned Users

Aby zalogować się do wystąpienie programu Microsoft SQL Server, którą podmiot musi mieć prawidłowy SQL Server Zaloguj się. Tego identyfikatora logowania jest używany w procesie uwierzytelnianie, które sprawdza, czy główny może połączyć się z wystąpienie programu SQL Server. The SQL Server logins on a server wystąpienie are visible in the sys.server_principals catalog view and the sys.syslogins compatibility view.

SQL Server logowania do dostępu do poszczególnych baz danych za pomocą użytkownik bazy danych, które jest mapowane do SQL Server Zaloguj się. Istnieją dwa wyjątki od tej reguły:

  • Konto gościa.

    Jest to konto, które umożliwia włączenie w bazie danych SQL Server identyfikatory logowania, które nie są przypisane do użytkownika bazy danych do bazy danych należy wprowadzić jako użytkownik Gość.

  • Członkostwo grup systemu Microsoft Windows.

    A SQL Server Identyfikator logowania, utworzone przez użytkownika systemu Windows można wprowadzić bazy danych, jeśli użytkownik systemu Windows jest członkiem grupy systemu Windows, która jest również użytkownika w bazie danych.

Informacje dotyczące mapowania SQL Server Zaloguj się do użytkowników bazy danych są przechowywane w bazie danych. Zawiera nazwę użytkownika bazy danych i odpowiadający mu identyfikator SID SQL Server Zaloguj się. Uprawnienia tego użytkownika bazy danych są używane do autoryzacja w bazie danych.

Użytkownik bazy danych, dla których odpowiednie SQL Server Logowanie nie jest zdefiniowana lub jest niepoprawnie zdefiniowany na serwerze wystąpienie nie może zalogować się do wystąpienie. Taki użytkownik jest określane jako oddzielonych użytkownika bazy danych dla tego wystąpienie serwera.Użytkownik bazy danych mogą zostać oddzielone, jeśli odpowiadające im SQL Server Identyfikator logowania zostanie usunięte. Ponadto użytkownik bazy danych mogą zostać oddzielone po bazy danych jest przywrócić lub dołączyć do innego wystąpienie programu SQL Server. Orphaning może się zdarzyć, gdy użytkownik bazy danych jest mapowane na identyfikator SID, który nie jest wyświetlany na nowe wystąpienie serwera.

Uwaga

A SQL Server Identyfikator logowania nie może uzyskać dostępu do bazy danych, w którym go brakuje odpowiedniego użytkownika bazy danych o ile Gość jest włączona w tej bazie danych.Aby uzyskać informacje dotyczące tworzenia konta użytkownika do bazy danych zobacz CREATE USER (języka Transact-SQL).

Do wykrywać użytkowników oddzielonych

Do wykrywać oddzielonych użytkowników, należy wykonać następujące instrukcje języka Transact-SQL:

USE <database_name>;
GO; 
sp_change_users_login @Action='Report';
GO;

Dane wyjściowe w bieżącej bazie danych, które nie są połączone z żadnym Wyświetla użytkowników i odpowiadające im identyfikatory zabezpieczeń (SID) SQL Server Zaloguj się. Aby uzyskać więcej informacji zobaczsp_change_users_login (Transact-SQL).

Uwaga

sp_change_users_login Nie można używać SQL Server identyfikatory logowania, które są tworzone na podstawie systemu Windows.

Aby rozwiązać przez użytkowników oddzielonych

Aby rozwiązać przez użytkownika oddzielone, należy użyć następującej procedury:

  1. Następujące polecenie relinks konta logowania serwera określonego przez <login_name> z określonego przez użytkownika bazy danych <database_user>.

    USE <database_name>;
    GO
    sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
       @LoginName='<login_name>';
    GO
    

    Aby uzyskać więcej informacji zobaczsp_change_users_login (Transact-SQL).

  2. Po uruchomieniu kodu w poprzednim kroku, może uzyskać dostępu do bazy danych.Użytkownik następnie można zmienić hasła dla <login_name> konto logowania przy użyciu sp_password przechowywanej procedury, w następujący sposób:

    USE master 
    GO
    sp_password @old=NULL, @new='password', @loginame='<login_name>';
    GO
    
    Security noteSecurity Note:

    Tylko logowania z uprawnieniami ALTER bez LOGIN może zmienić hasło logowania przez innego użytkownika.Jednakże tylko członkowie sysadmin roli mogą modyfikować haseł sysadmin członków roli.

    Uwaga

    sp_password Nie można używać Microsoft Konta systemu Windows. Użytkownicy łączący się z wystąpienie SQL Server za pośrednictwem sieci Windows konta są uwierzytelniane przez system Windows, dlatego swoje hasła mogą być zmieniane tylko w systemie Windows.

    Aby uzyskać więcej informacji zobaczsp_password (języka Transact-SQL).