Share via


Artık kullanıcıların (SQL Server) ile ilgili sorunları giderme

Microsoft örneğine oturum açmak için SQL Server, asıl adı geçerli bir olması gerekir SQL Servergiriş. Bu giriş, anapara örneğine bağlanmak için izin verilip verilmediğini denetler kimlik doğrulama işleminde kullanılır SQL Server. SQL ServerOturumu sunucu örneği görünür sys.server_principals katalog görünüm ve sys.syslogins Uyumluluk Görünümü.

SQL Serveroturum açma erişimi eşlenen veritabanı kullanıcı kullanarak bireysel veritabanlarını SQL Servergiriş. Bu kuralın iki istisnası vardır:

  • Konuk hesabı.

    Hesap budur ki, veritabanında etkin olduğunda, sağlar SQL Serververitabanı Konuk kullanıcı olarak girmek için bir veritabanı kullanıcısı eşlenmez oturumlarının.

  • Microsoft Windows Grup üyelikleri.

    A SQL Serverbir Windows kullanıcıdan giriş-ebilmek girmek bir veritabanında Windows kullanıcı veritabanında bir kullanıcı da bir Windows grup üyesi ise.

Eşleme hakkında bilgi bir SQL Serververitabanı kullanıcı oturum açma veritabanı içinde depolanır. Veritabanı kullanıcı adını ve ilgili SID içeren SQL Servergiriş. Bu veritabanı kullanıcı izni veritabanındaki kimlik doğrulama için kullanılır.

Veritabanı kullanıcı kendisi için ilgili SQL Servergiriş tanımsızdır ya da yanlış bir sunucuda tanımlı örneği can't giriş örneği. Böyle bir kullanıcı kabul edilir bir artık kullanıcı veritabanı sunucusu örneği. Veritabanı kullanıcı Eğer yetim olmak ilgili SQL Servergiriş düştü. Bir veritabanını geri ya da farklı bir örneği için bağlı sonra da, veritabanı kullanıcı yetim olmak SQL Server. Yeni sunucu örneği bulunmayan bir SID eşlenen veritabanı kullanıcı orphaning gerçekleşebilir.

[!NOT]

A SQL Servermantık içinde bu karşılık gelen veritabanı kullanıcı sürece yoksun bir veritabanına erişemiyor Konuk bu veritabanında etkinleştirilir. Veritabanı kullanıcı hesabı oluşturma hakkında daha fazla bilgi için bkz: CREATE USER (Transact-SQL).

Artık kullanıcıları algılamak için

Artık kullanıcıları algılamak için aşağıdaki Transact-sql deyimlerinin yürütün:

USE <database_name>;
GO; 
sp_change_users_login @Action='Report';
GO;

Çıktı karşılık gelen güvenlik tanımlayıcıları (SID) için bağlantılı değildir geçerli veritabanında listeler SQL Servergiriş. Daha fazla bilgi için, bkz. sp_change_users_login (Transact-sql).

[!NOT]

sp_change_users_login ile kullanılamaz SQL ServerWindows'dan oluşturulan oturum açma.

Artık kullanıcı gidermek için

Artık kullanıcı gidermek için aşağıdaki yordamı kullanın:

  1. Aşağıdaki komut ile belirtilen sunucu oturum açma hesabı bağlar <login_name>tarafından belirtilen veritabanı kullanıcı <database_user>.

    USE <database_name>;
    GO
    sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
       @LoginName='<login_name>';
    GO
    

    Daha fazla bilgi için, bkz. sp_change_users_login (Transact-sql).

  2. Önceki adımda kodu çalıştırdıktan sonra kullanıcı veritabanına erişebilir. Kullanıcı daha sonra parolasını değiştirebilir <login_name>kullanarak oturum açma hesabı sp_password saklı yordamı, aşağıdaki gibi:

    USE master 
    GO
    sp_password @old=NULL, @new='password', @loginame='<login_name>';
    GO
    
    Güvenlik notuGüvenlik Notu

    Yalnızca oturumları alter any LOGIN izni ile başka bir kullanıcının oturum açma parolasını değiştirebilirsiniz. Ancak, sadece üyeleri sysadmin rol şifreleri değiştirebilirsiniz sysadmin rol üyeleri.

    [!NOT]

    sp_password kullanılamaz MicrosoftWindows hesapları. Örneğine bağlanan kullanıcılar SQL Serverkendi Windows ağ üzerinden hesap Windows tarafından; doğrulanır Bu nedenle, Windows parolalarını yalnızca değiştirilebilir.

    Daha fazla bilgi için, bkz. sp_password (Transact-sql).

Ayrıca bkz.

Başvuru

CREATE USER (Transact-SQL)

Giriş (Transact-sql) oluştur

sp_change_users_login (Transact-sql)

sp_addlogin (Transact-sql)

sp_grantlogin (Transact-sql)

sp_password (Transact-sql)

sys.sysusers (Transact-sql)

sys.syslogins (Transact-sql)