Aracılığıyla paylaş


sp_change_users_login (Transact-sql)

Varolan bir veritabanı kullanıcı eşlemeleri bir SQL Servergiriş. 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.Kullanım alter user onun yerine.

Konu bağlantısı simgesi Transact-SQL Sözdizim 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 eylemi açıklar. actionis varchar(10). actionAşağıdaki değerlerden biri olabilir.

    Değer

    Açıklama

    Auto_Fix

    Bir kullanıcı girişi bağlantıları sys.database_principalssistem katalog görünüm geçerli veritabanında bir SQL Servergiriş aynı adı. Aynı ada sahip bir oturumu yoksa, bir oluşturulur. İnceleme sonucunda Auto_Fixdoğru bağlantı aslında yapılmış olduğunu onaylamak için deyimi. Kullanmaktan kaçının Auto_Fixgüvenlik açısından duyarlı durumlarda.

    Kullandığınızda Auto_Fix, belirtmeniz gerekir userve passwordoturum açma zaten yok, aksi takdirde belirtmelisiniz userama passwordsayılacak. loginnull olmalıdır. usergeçerli veritabanında geçerli bir kullanıcı olmanız gerekir. Oturum, başka bir kullanıcı için eşlenen olamaz.

    Report

    Geçerli veritabanında herhangi bir mantık-e doğru bağlanmamış kullanıcıları ve ilgili güvenlik tanımlayıcıları (SID) listeler. user, login, ve passwordnull olmalıdır ya da belirtilmemiş.

    Update_One

    Belirtilen Linkler usergeçerli veritabanında varolan bir SQL Server   login. userve loginbelirtilmesi gerekir. password belirtilmezse veya null olmalıdır.

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

  • [ @LoginName= ] 'login'
    Adı bir SQL Servergiriş. login ise sysname, null varsayılan.

  • [ @Password= ] 'password'
    Yeni atanan şifre ise SQL Serverbelirterek oluşturulan oturum açma Auto_Fix. Eşleşen bir giriş varsa, kullanıcı ve oturum açma eşlenen ve passwordgöz ardı edilir. Eşleşen bir giriş yoksa, sp_change_users_loginoluşturur Yeni bir SQL Servergiriş ve atar password olarak yeni oturum açma parolasını. passwordise sysname, ve null olmamalıdır.

    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

Kullanım sp_change_users_loginile geçerli veritabanında veritabanı kullanıcı bağlamak için bir SQL Servergiriş. Bir kullanıcı oturum değiştiyse kullanın sp_change_users_loginkullanıcı, kullanıcı izinleri kaybetmeden yeni mantık-e doğru bağlamak için. Yeni loginolamaz save user * * olamaz dbo, guest, ya da bir INFORMATION_SCHEMAkullanıcının.

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

sp_change_users_loginkullanılamaz bir SQL ServerWindows sorumlusu veya create user olmaksızın LOGIN kullanılarak oluşturulan bir kullanıcı ile oluşturulan oturumu.

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

İzinler

Üyelik db_ownerveritabanı rolü. Yalnızca üyeleri sysadminsabit sunucu rolü belirtme Auto_Fixseçeneği.

Örnekler

A.Geçerli kullanıcı için oturum açma eşlemeleri rapor gösterilen

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

EXEC sp_change_users_login 'Report';

EXEC sp_change_users_login 'Report';

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

Aşağıdaki örnek, veritabanı kullanıcı yeni ile ilişkili SQL Servergiriş. Veritabanı kullanıcı MB-Sales, başka bir mantık-e doğru ilk başta eşlendiği remapped giriş 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

--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.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_FixVarolan bir kullanıcı aynı adı taşıyan bir giriş eşlemek veya oluşturmak için SQL Servergiriş Maryşifre olan B3r12-3x$098f6Eğer oturum açma Maryyok.

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

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

Ayrıca bkz.

Başvuru

Güvenlik depolanan yordamlar (Transact-sql)

Giriş (Transact-sql) oluştur

sp_adduser (Transact-sql)

sp_helplogins (Transact-sql)

Sistem saklı yordamları (Transact-sql)

sys.database_principals (Transact-sql)