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.
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 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