sp_change_users_login (Transact-SQL)sp_change_users_login (Transact-SQL)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2012)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Ordnet einen vorhandenen Datenbankbenutzer einem SQL ServerSQL Server-Anmeldenamen zu.Maps an existing database user to a SQL ServerSQL Server login. Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt.This feature will be removed in a future version of Microsoft SQL Server. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Verwendung ALTER USER stattdessen. Use ALTER USER instead.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


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

ArgumenteArguments

[ @Action=] 'Aktion"[ @Action= ] 'action'
Beschreibt die von der Prozedur durchzuführende Aktion.Describes the action to be performed by the procedure. Aktion ist varchar(10).action is varchar(10). Aktion kann einen der folgenden Werte aufweisen.action can have one of the following values.

WertValue DescriptionDescription
Auto_fixAuto_Fix Verknüpft einen Benutzereintrag in der sys.database_principals-Systemkatalogsicht in der aktuellen Datenbank mit einem gleichlautenden SQL ServerSQL Server-Anmeldenamen.Links a user entry in the sys.database_principals system catalog view in the current database to a SQL ServerSQL Server login of the same name. Ist kein gleichlautender Anmeldename vorhanden, wird er erstellt.If a login with the same name does not exist, one will be created. Überprüfen Sie das Ergebnis der Auto_Fix Anweisung, um sicherzustellen, dass tatsächlich der richtige Link erstellt wurde.Examine the result from the Auto_Fix statement to confirm that the correct link is in fact made. Vermeiden Sie die Verwendung Auto_Fix in sicherheitskritischen Situationen.Avoid using Auto_Fix in security-sensitive situations.

Bei Verwendung von Auto_Fix, müssen Sie angeben, Benutzer und Kennwort Wenn der Anmeldename nicht bereits vorhanden ist, andernfalls müssen Sie angeben Benutzerjedoch Kennwort werden ignoriert.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. Anmeldung muss NULL sein.login must be NULL. Benutzer muss ein gültiger Benutzer in der aktuellen Datenbank sein.user must be a valid user in the current database. Dem Anmeldenamen kann kein anderer Benutzer zugeordnet werden.The login cannot have another user mapped to it.
BerichtReport Listet die Benutzer und entsprechenden Sicherheits-IDs (SIDs) in der aktuellen Datenbank auf, die mit keinem Anmeldenamen verknüpft sind.Lists the users and corresponding security identifiers (SID) in the current database that are not linked to any login. Benutzer, Anmeldung, und Kennwort muss NULL oder nicht angegeben.user, login, and password must be NULL or not specified.

Um die Berichtsoption durch eine Abfrage mit Bezug auf die Systemtabellen zu ersetzen, vergleichen Sie die Einträge in server_prinicpals mit den Einträgen in Sys. database_principals.To replace the report option with a query using the system tables, compare the entries in sys.server_prinicpals with the entries in sys.database_principals.
Update_OneUpdate_One Verknüpft den angegebenen Benutzer in der aktuellen Datenbank zu einem vorhandenen SQL ServerSQL Server Anmeldung.Links the specified user in the current database to an existing SQL ServerSQL Server login. Benutzer und Anmeldung muss angegeben werden.user and login must be specified. Kennwort muss NULL oder nicht angegeben.password must be NULL or not specified.

[ @UserNamePattern=] 'Benutzer"[ @UserNamePattern= ] 'user'
Der Name eines Benutzers in der aktuellen Datenbank.Is the name of a user in the current database. Benutzer ist Sysname, hat den Standardwert NULL.user is sysname, with a default of NULL.

[ @LoginName=] 'Anmeldung"[ @LoginName= ] 'login'
Der Name einer SQL ServerSQL Server-Anmeldung.Is the name of a SQL ServerSQL Server login. login ist vom Datentyp sysnameund hat den Standardwert NULL.login is sysname, with a default of NULL.

[ @Password=] 'Kennwort"[ @Password= ] 'password'
Zugewiesene Kennwort in ein neues SQL ServerSQL Server Anmeldung durch die Angabe erstellte Auto_Fix.Is the password assigned to a new SQL ServerSQL Server login that is created by specifying Auto_Fix. Wenn kein entsprechender Anmeldename vorhanden ist, die Benutzer und Anmeldenamen zugeordnet sind und Kennwort wird ignoriert.If a matching login already exists, the user and login are mapped and password is ignored. Wenn kein entsprechender Anmeldename nicht existiert, erstellt Sp_change_users_login einen neuen SQL ServerSQL Server -Anmeldenamen und weist ihm Kennwort als Kennwort für den neuen Anmeldenamen.If a matching login does not exist, sp_change_users_login creates a new SQL ServerSQL Server login and assigns password as the password for the new login. Kennwort ist Sysname, und darf nicht NULL sein.password is sysname, and must not be NULL.

WICHTIG!IMPORTANT!! Verwenden Sie immer eine sicheres Kennwort!Always use a strong Password!

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

ResultsetsResult Sets

SpaltennameColumn name DatentypData type DescriptionDescription
UserNameUserName sysnamesysname Datenbank-Benutzername.Database user name.
UserSIDUserSID varbinary (85)varbinary(85) Sicherheits-ID des Benutzers.User's security identifier.

HinweiseRemarks

Mithilfe von sp_change_users_login kann ein Datenbankbenutzer in der aktuellen Datenbank mit einem SQL ServerSQL Server-Anmeldenamen verknüpft werden.Use sp_change_users_login to link a database user in the current database with a SQL ServerSQL Server login. Wenn sich der Anmeldename für einen Benutzer geändert hat, verknüpfen Sie den Benutzer mithilfe von sp_change_users_login mit dem neuen Anmeldenamen, ohne die Benutzerberechtigungen zu verlieren.If the login for a user has changed, use sp_change_users_login to link the user to the new login without losing user permissions. Die neue Anmeldung darf nicht sa sein, und die Benutzerdarf nicht Dbo, Guest oder ein INFORMATION_SCHEMA-Benutzer.The new login cannot be sa, and the usercannot be dbo, guest, or an INFORMATION_SCHEMA user.

sp_change_users_login kann nicht zum Erstellen einer Zuordnung zwischen Datenbankbenutzern und Prinzipalen, Zertifikaten oder asymmetrischen Schlüsseln auf Windows-Ebene verwendet werden.sp_change_users_login cannot be used to map database users to Windows-level principals, certificates, or asymmetric keys.

sp_change_users_login kann nicht mit einer SQL ServerSQL Server-Anmeldung, die anhand eines Windows-Prinzipals erstellt wurde, oder mit einer vom Benutzer (mithilfe von CREATE USER WITHOUT LOGIN) erstellten Anmeldung verwendet werden.sp_change_users_login cannot be used with a SQL ServerSQL Server login created from a Windows principal or with a user created by using CREATE USER WITHOUT LOGIN.

sp_change_users_login kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.sp_change_users_login cannot be executed within a user-defined transaction.

BerechtigungenPermissions

Erfordert die Mitgliedschaft in der festen Datenbankrolle "db_owner".Requires membership in the db_owner fixed database role. Nur Mitglieder der festen Serverrolle Sysadmin können angeben, die Auto_Fix Option.Only members of the sysadmin fixed server role can specify the Auto_Fix option.

BeispieleExamples

A.A. Anzeigen eines Berichts der aktuellen Zuordnungen zwischen Benutzern und AnmeldenamenShowing a report of the current user to login mappings

Im folgenden Beispiel wird ein Bericht über die Benutzer in der aktuellen Datenbank und ihre Sicherheits-IDs erstellt.The following example produces a report of the users in the current database and their security identifiers (SIDs).

EXEC sp_change_users_login 'Report';  

B.B. Zuordnen eines Datenbankbenutzers zu einer neuen SQL Server-AnmeldungMapping a database user to a new SQL Server login

Im folgenden Beispiel wird ein Datenbankbenutzer einem neuen SQL ServerSQL Server-Anmeldenamen zugeordnet.In the following example, a database user is associated with a new SQL ServerSQL Server login. Datenbankbenutzer MB-Sales, der zunächst einem anderen Anmeldenamen zugeordnet ist, wird dem Anmeldenamen MaryB zugeordnet.Database user MB-Sales, which at first is mapped to another login, is remapped to login MaryB.

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

C.C. Automatisches Zuordnen eines Benutzers zu einer Anmeldung und ggf. Erstellen einer neuen AnmeldungAutomatically mapping a user to a login, creating a new login if it is required

Im folgenden Beispiel wird veranschaulicht, wie mithilfe von Auto_Fix eine Zuordnung zwischen einem vorhandenen Benutzer und einem gleichlautenden Anmeldenamen erstellt wird oder wie der SQL ServerSQL Server-Anmeldename Mary mit dem Kennwort B3r12-3x$098f6 erstellt wird, wenn der Anmeldename Mary nicht vorhanden ist.The following example shows how to use Auto_Fix to map an existing user to a login of the same name, or to create the SQL ServerSQL Server login Mary that has the password B3r12-3x$098f6 if the login Mary does not exist.

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

Siehe auchSee Also

Gespeicherte Systemprozeduren ( Transact-SQL ) Security Stored Procedures (Transact-SQL)
CREATE LOGIN (Transact-SQL) CREATE LOGIN (Transact-SQL)
sp_adduser (Transact-SQL) sp_adduser (Transact-SQL)
Sp_helplogins ( Transact-SQL ) sp_helplogins (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL) System Stored Procedures (Transact-SQL)
sys.database_principals (Transact-SQL)sys.database_principals (Transact-SQL)