Aracılığıyla paylaş


sp_change_users_login (Transact-SQL)

Varolan bir veritabanı kullanıcı eşlemeleri bir SQL Server oturum açma.Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.Use alter user onun yerine.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ @Action= ] 'action'
    Yordam tarafından gerçekleştirilecek eylem tanımlar.actionis varchar(10).actionAşağıdaki değerlerden biri olabilir.

    Değer

    Açıklama

    Auto_Fix

    Bir kullanıcı girişi bağlar sys.database_principals Sistem Katalog görünümü geçerli veritabanında bir SQL Server login aynı adı.Aynı ada sahip bir oturumu yoksa, tane oluşturulur.İnceleme sonucu doğru bağlantı içinde yapılan olgu olduğunu onaylamak içinAuto_Fixdeyim . Kullanmaktan kaçının Auto_Fix güvenlik açısından duyarlı durumlarda.

    Kullandığınızda, Auto_Fix, belirtmeniz gerekir user ve password , oturum açma zaten mevcut, aksi takdirde belirtmeniz gerekir user ama password gözardı edilecek.loginnull olmalıdır.userGeçerli veritabanında geçerli bir kullanıcı olmanız gerekir.Başka bir kullanıcı için eşlenen oturum açma olamaz.

    Report

    Geçerli veritabanında herhangi oturumuna bağlı olmayan kullanıcıları ve ilgili güvenlik tanımlayıcılarını (SID) listeler.user, login, ve password null olmamalıdır veya belirtilmemiş.

    Update_One

    Belirtilen bağlar user geçerli veritabanında varolan bir SQL Server login.userve login belirtilmelidir.password belirtilmemiş veya null olmalıdır.

  • [ @UserNamePattern= ] 'user'
    Geçerli veritabanında bir kullanıcı adıdır.userİş sysname, varsayılan değer null.

  • [ @LoginName= ] 'login'
    Adı bir SQL Server oturum açma.login İş sysname, varsayılan değer null.

  • [ @Password= ] 'password'
    Olan bir yeni atanan parola SQL Server belirterek oluşturulan oturum açma Auto_Fix.Eşleşen bir oturum varsa, kullanıcı ve oturum açma eşlenen ve password göz ardı edilir.Eşleşen bir oturumu yoksa, sp_change_users_login oluşturur Yeni bir SQL Server login ve atar password olarak parolasını yeni bir oturum açma.passwordİş sysname, ve null. olmalı

    Güvenlik notuGüvenlik Notu

    Güçlü bir parola kullanın.Daha fazla bilgi için, bkz. Güçlü parolalar.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

Sütun adı

Veri türü

Açıklama

UserName

sysname

Veritabanı kullanıcı adı.

UserSID

varbinary(85)

Kullanıcının güvenlik tanımlayıcısı.

Açıklamalar

Use sp_change_users_login bir veritabanı kullanıcısı ile geçerli veritabanında bağlamak için bir SQL Server oturum açma.Bir kullanıcı oturum değişmişse, kullanmak sp_change_users_login bağlama kullanıcıya yeni oturum kaybetmeden kullanıcı izinleri.Yeni login olamaz save user* *olamaz dbo, guest, ya da bir INFORMATION_SCHEMA kullanıcı.

sp_change_users_loginVeritabanı kullanıcılarını Windows -düzey ilkeleri, sertifikalar veya asimetrik anahtarlar eşlemek için kullanılamaz.

sp_change_users_loginkullanılamaz bir SQL Server asıl Windows veya kullanmadan oluşturma kullanıcı tarafından oluşturulan bir kullanıcı ile oluşturulan oturum açmaOTURUMU.

sp_change_users_loginkullanıcı tanımlı bir işlem içinde yürütülemiyor.

İzinler

Üyelik gerektiren db_owner veritabanı rolüsabit.Yalnızca üyeleri sysadmin sabit sunucu rolü belirtebilirsiniz Auto_Fix seçeneği.

Örnekler

A.Geçerli kullanıcının oturum açma eşlemeleri rapor gösterme

Aşağıdaki örnek, geçerli veritabanı ve bunların güvenlik tanımlayıcılarını (SID) kullanıcıların bir rapor üretir.

EXEC sp_change_users_login 'Report';

B.Yeni bir SQL Server oturum bir veritabanı kullanıcı eşleme

Aşağıdaki örnekte, veritabanı yeni ile ilişkili olduğu SQL Server oturum açma.Veritabanı kullanıcı MB-Sales, ilk çıktığı, başka bir oturumu için eşleştirilmiş yeniden eşlenir oturumuna MaryB.

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

C.Otomatik olarak bir kullanıcı bir oturum için gerekirse yeni bir oturum oluşturma eşleme

Aşağıdaki örnek, nasıl kullanılacağını gösterir Auto_Fix oluşturmak için veya varolan bir kullanıcı oturum açma adıyla eşleştirmek için SQL Server login Mary parola sahip B3r12-3x$098f6 , oturum açma Mary yok.

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