Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Bir veritabanı kullanıcısı veritabanındaki bir oturum açmayı temel alır ancak oturum açma artık içinde mevcut olmadığında SQL Server'da mastermasterkullanıcılar yalnız kalır. Bu durum, oturum açma bilgileri silindiğinde veya veritabanı oturum açmanın olmadığı başka bir sunucuya taşındığında oluşabilir. Bu makalede yalnız bırakılmış kullanıcıların nasıl bulunup oturum açma işlemleriyle yeniden eşlendiği açıklanır.
Uyarı
Taşınabilecek veritabanları için bağımsız veritabanı kullanıcılarını kullanarak yalnız bırakılmış kullanıcıların olasılığını azaltın. Daha fazla bilgi için bkz. Veritabanınızı kapsanan veritabanlarını kullanarak taşınabilir hale getirme.
Arka plan
Sql Server örneğinde oturum açma bilgilerini temel alan bir güvenlik sorumlusu (veritabanı kullanıcı kimliği) kullanan bir veritabanına yönelik bağlantılar için sorumlunun veritabanında geçerli bir oturum açma bilgisi master olmalıdır. Bu oturum açma, sorumlunun kimliğini doğrulayan ve sorumlunun SQL Server örneğine bağlanmasına izin verilip verilmeyeceğini belirleyen kimlik doğrulama işleminde kullanılır. Sunucu örneğindeki SQL Server oturum açma işlemleri sys.server_principals katalog görünümünde ve sys.sql_logins uyumluluk görünümünde görünür.
SQL Server oturum açma bilgileri tek tek veritabanlarına SQL Server oturum açma bilgileriyle eşlenmiş bir "veritabanı kullanıcısı" olarak erişir. Bu kuralın üç özel durumu vardır:
Kapsanan veritabanı kullanıcıları
Bağımsız veritabanı kullanıcıları, kullanıcı veritabanı düzeyinde kimlik doğrulaması yapar ve oturum açma bilgileriyle ilişkili değildir. Veritabanları daha taşınabilir olduğundan ve kapsanan veritabanı kullanıcıları yalnız kalamadığından bu model önerilir. Ancak, her veritabanı için yeniden oluşturulmalıdır. Bu model, birçok veritabanının olduğu bir ortamda pratik olmayabilir.
Konuk hesabı
Bir veritabanında etkinleştirildiğinde, bu hesap bir veritabanı kullanıcısına eşlenmeyen SQL Server oturum açma bilgilerinin veritabanına konuk kullanıcı olarak erişmesine izin verir. Konuk hesabı varsayılan olarak devre dışıdır.
Microsoft Windows grup üyelikleri
Bir Windows kullanıcısından oluşturulan SQL Server oturum açma bilgileri, Windows kullanıcısı aynı zamanda veritabanındaki bir Windows grubunun üyesiyse veritabanına erişebilir.
SQL Server oturum açma bilgilerinin veritabanı kullanıcısına eşleneceğiyle ilgili bilgiler veritabanında depolanır. Veritabanı kullanıcısının adını ve ilgili SQL Server oturum açma bilgilerinin güvenlik tanımlayıcısını (SID) içerir. Bu veritabanı kullanıcısının izinleri veritabanında yetkilendirme için uygulanır.
İlgili SQL Server oturum açma bilgilerinin tanımsız olduğu veya sunucu örneğinde yanlış tanımlandığı bir veritabanı kullanıcısı (oturum açmaya bağlı olarak) örnekte oturum açamaz. Böyle bir kullanıcının, bu sunucu örneğindeki veritabanının yalnız bırakılmış bir kullanıcısı olduğu söylenir. Veritabanı kullanıcısı veritabanında mevcut master olmayan bir oturum açma bilgileriyle SID eşlenirse yalnız kullanım gerçekleşebilir. Veritabanı geri yüklendikten veya oturum açmanın hiç oluşturulmadığı farklı bir SQL Server örneğine eklendikten sonra veritabanı kullanıcısı yalnız bırakılmış duruma gelebilir. Veritabanı kullanıcısı, ilgili SQL Server oturum açma bilgisi bırakılırsa yalnız da bırakılabilir. Oturum açma bilgileri yeniden oluşturulsa bile farklı SIDbir öğesine sahip olur, bu nedenle veritabanı kullanıcısı yine yalnız kalır.
Yalnız bırakılmış kullanıcıları algılama
SQL Server ve PDW için
EKSIK SQL Server kimlik doğrulaması oturum açma bilgilerini temel alarak SQL Server'da yalnız bırakılmış kullanıcıları algılamak için kullanıcı veritabanında aşağıdaki deyimi çalıştırın:
SELECT dp.type_desc, dp.sid, dp.name AS user_name
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE sp.sid IS NULL
AND dp.authentication_type_desc = 'INSTANCE';
Çıkışta SQL Server kimlik doğrulaması kullanıcıları ve geçerli veritabanındaki sql server oturum açma bilgilerine bağlı olmayan ilgili SID'ler listelenir.
Azure SQL Veritabanı ve Azure Synapse Analytics için
sys.server_principals tablosu SQL Veritabanı veya Azure Synapse Analytics'te kullanılamaz. Bu adımları tamamlayarak bu ortamlarda yalnız bırakılmış kullanıcıları belirleyin:
Veritabanına bağlanın
masterve aşağıdaki sorguyu kullanarak oturum açma işlemleri için SID'leri seçin:SELECT sid FROM sys.sql_logins WHERE type = 'S';Aşağıdaki sorguyu kullanarak kullanıcı veritabanına bağlanın ve tablodaki
sys.database_principalskullanıcıların SID'lerini gözden geçirin:SELECT name, sid, principal_id FROM sys.database_principals WHERE type = 'S' AND name NOT IN ('guest', 'INFORMATION_SCHEMA', 'sys') AND authentication_type_desc = 'INSTANCE';Kullanıcı veritabanı tablosunda, veritabanı
sys.database_principalstablosundaki oturum açma SID'leriyle eşleşmemiş kullanıcı SID'lerimastersql_loginsolup olmadığını belirlemek için iki listeyi karşılaştırın.
Yalnız bırakılmış kullanıcıyı çözme
master Veritabanında CREATE LOGIN deyimini SID kullanarak eksik oturum açma bilgilerini yeniden oluşturun.
SID Önceki bölümde edindiğiniz veritabanı kullanıcısının değerini sağlayın.
CREATE LOGIN <login_name>
WITH PASSWORD = '<use_a_strong_password_here>',
SID = <SID>;
Yalnız bırakılmış bir kullanıcıyı içinde masterzaten var olan bir oturum açmayla eşlemek için kullanıcı veritabanında oturum açma adını belirterek ALTER USER deyimini çalıştırın:
ALTER USER <user_name> WITH Login = <login_name>;
Eksik oturum açma bilgilerini yeniden oluşturduğunuzda, kullanıcı sağlanan parolayı kullanarak veritabanına erişebilir. Kullanıcı daha sonra şu deyimi kullanarak ALTER LOGIN oturum açma hesabının parolasını değiştirebilir:
ALTER LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
Önemli
Tüm oturum açma bilgileri kendi parolasını değiştirebilir. Yalnızca izni olan ALTER ANY LOGIN oturum açma işlemleri başka bir kullanıcının oturum açma parolasını değiştirebilir. Ancak, yalnızca sysadmin rolünün üyeleri sysadmin rol üyelerinin parolalarını değiştirebilir.
İlgili içerik
- GİRİŞ OLUŞTUR (Transact-SQL)
- ALTER USER (Transact-SQL)
- CREATE USER (Transact-SQL)
- sys.database_principals (Transact-SQL)
- sys.server_principals (Transact-SQL)
- sp_change_users_login (Transact-SQL)
- sp_addlogin (Transact-SQL)
- sp_grantlogin (Transact-SQL)
- sp_password (Transact-SQL)
- sys.sysusers (Transact-SQL)
- sys.sql_logins (Transact-SQL)
- sys.syslogins (Transact-SQL)