Udostępnij za pośrednictwem


sp_change_users_login (Transact-SQL)

Mapuje istniejącego użytkownika do bazy danych SQL Server Zaloguj się. This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Użycie ZMIENIANIE UŻYTKOWNIKA zamiast niego.

Topic link iconKonwencje składni języka Transact-SQL

sp_change_users_login [ @Action = ] 'action' 
    [ , [ @UserNamePattern = ] 'user' ] 
    [ , [ @LoginName = ] 'login' ] 
        [ , [ @Password = ] 'password' ]

Argumenty

  • [ @Action = ] 'action'
    Describes the action to be performed by the procedure.action is varchar(10).action can have one of the following values.

    Wartość

    Description

    Auto_Fix

    Wyświetlanie łączy wpisu użytkownika w katalogu systemu sys.database_principals w bieżącej bazie danych do SQL Server Identyfikator logowania o tej samej nazwie. Jeśli nazwa logowania o tej samej nazwie nie istnieje, zostanie utworzony jeden.Sprawdź wynik z Auto_Fix instrukcja, aby potwierdzić, że w rzeczywistości następuje łącze było poprawne.Należy unikać używania Auto_Fix w sytuacjach uwzględniających zabezpieczenia.

    When you use Auto_Fix, you must specify user and password if the login does not already exist, otherwise you must specify user but password will be ignored.login must be NULL.user must be a valid user in the current database.Identyfikator logowania nie może mieć inny użytkownik mapowane do niego.

    Report

    Wyświetla listę użytkowników i odpowiadające im identyfikatory zabezpieczeń (SID) w bieżącej bazie danych, które nie są połączone z dowolnym logowania.user, login, a password musi mieć wartość NULL lub nie określono.

    Update_One

    Links the specified user in the current database to an existing SQL Serverlogin.user and login must be specified.password must be NULL or not specified.

  • [ @UserNamePattern = ] 'user'
    Is the name of a user in the current database.user is sysname, with a default of NULL.

  • [ @LoginName = ] 'login'
    Is the name of a SQL Server login.login is sysname, with a default of NULL.

  • [ @Password = ] 'password'
    Hasło jest przypisane na nowe SQL Server Identyfikator logowania, utworzone przez określenie Auto_Fix.Jeśli już istnieje pasujący logowania użytkownika i logowania są mapowane i password jest ignorowana. If a matching login does not exist, sp_change_users_login creates a new SQL Server login and assigns password as the password for the new login.password is sysname, and must not be NULL.

    Security noteSecurity Note:

    Należy używać silnego hasła.Aby uzyskać więcej informacji zobaczStrong Passwords.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Zestawy wyników

Nazwa kolumna

Typ danych

Description

Nazwa użytkownika

sysname

Nazwa użytkownika bazy danych.

UserSID

varbinary(85)

Identyfikator zabezpieczeń użytkownika.

Remarks

Użyj sp_change_users_login do połączenia użytkowników bazy danych w bieżącej bazie danych z SQL Server Zaloguj się. Jeśli identyfikator logowania dla użytkownika uległa zmianie, umożliwia sp_change_users_login połączyć nowy identyfikator logowania użytkownika bez utraty uprawnienia użytkowników.The new login cannot be sa, and the usercannot be dbo, guest, or an INFORMATION_SCHEMA user.

sp_change_users_login nie może być używany do mapowania użytkowników bazy danych głównych, certyfikaty lub klucze asymetryczne poziom systemu Windows.

Nie można używać sp_change_users_login SQL Server utworzony z obiektem systemu Windows lub z użytkownikiem, utworzony za pomocą CREATE USER bez LOGIN logowania.

Nie można wykonać sp_change_users_login w transakcji zdefiniowanej przez użytkownika.

Uprawnienia

Wymaga członkostwo w roli db_owner stałej bazy danych.Tylko członkowie sysadmin stała rola serwera można określić Auto_Fix opcji.

Przykłady

A.Wyświetlanie raportu dotyczącego bieżącemu użytkownikowi na logowanie mapowania

Poniższy przykład tworzy raport użytkowników w bieżącej bazie danych i ich identyfikatory zabezpieczeń (SID).

EXEC sp_change_users_login 'Report';

B.Mapowanie użytkowników bazy danych do nowego konto logowania do programu SQL Server

W poniższym przykładzie użytkownik bazy danych jest skojarzony z nową SQL Server Zaloguj się. Użytkownik bazy danych MB-Sales, które na początku jest mapowany na inny identyfikator logowania, są mapowane ponownie do identyfikatora logowania MaryB.

--Create the new login.
CREATE LOGIN MaryB WITH PASSWORD = '982734snfdHHkjj3';
GO
--Map database user MB-Sales to login MaryB.
USE AdventureWorks;
GO
EXEC sp_change_users_login 'Update_One', 'MB-Sales', 'MaryB';
GO

C.Automatyczne mapowanie użytkownika na identyfikator logowania, tworząc nowy identyfikator logowania, w razie potrzeby

W poniższym przykładzie przedstawiono sposób użycia Auto_Fix Aby mapować istniejącego użytkownika do logowania o tej samej nazwie lub utworzyć SQL Server Identyfikator logowania Mary który posiada hasło B3r12-3x$098f6 Jeśli identyfikator logowania Mary nie istnieje.

USE AdventureWorks;
GO
EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-3x$098f6';
GO