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