SQL Server'da Orphan User Problemi ve Değişiklik Yönetimiyle İlişkisi
I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.
As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.
When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.
Feel free to connect or reach out at info@sqlchangeguard.com
Orphan user, veritabanında tanımlı olan ama sunucu düzeyinde eşleşen bir login'i olmayan kullanıcıdır. Sessizce orada durur, kimse fark etmez. Ta ki sorun çıkana kadar.
Nasıl Oluşur? Sunucu taşıma veya yükseltme: Veritabanı başka bir sunucuya taşındı. Yeni sunucuda eski login'ler yok. Veritabanındaki kullanıcılar orphan oldu. Backup'tan restore: Backup başka bir sunucuya restore edildi. Aynı sorun. Login silindi ama kullanıcı silinmedi: Biri sunucu düzeyinde login'i kaldırdı. Veritabanındaki kullanıcı kaldı.
Orphan User Tespiti sql-- Orphan kullanıcıları tespit et USE VeritabaniAdi; GO
EXEC sp_change_users_login 'Report'; Bu komut eşleşmeyen kullanıcıları listeler. Alternatif olarak: sqlSELECT dp.name AS KullaniciAdi, dp.type_desc AS KullaniciTipi, dp.create_date AS OlusturmaTarihi FROM sys.database_principals dp LEFT JOIN sys.server_principals sp ON dp.sid = sp.sid WHERE dp.type IN ('S', 'U') AND dp.name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys') AND sp.sid IS NULL ORDER BY dp.name;
Düzeltme Yöntemleri sql-- Mevcut login ile eşleştir EXEC sp_change_users_login 'Update_One', 'OrphanKullanici', 'MevcutLogin';
-- Yeni login oluşturup eşleştir CREATE LOGIN YeniLogin WITH PASSWORD = 'GucluParola123!'; EXEC sp_change_users_login 'Update_One', 'OrphanKullanici', 'YeniLogin';
-- Orphan kullanıcıyı sil (eğer gerekli değilse) DROP USER OrphanKullanici;
Değişiklik Yönetimiyle Bağlantısı Orphan user problemi genellikle değişiklik sürecinin dışında yapılan işlemlerden kaynaklanır: kayıt tutulmadan yapılan sunucu taşıma, onaysız login silme, belgesiz restore. Eğer her sunucu taşıma, her login değişikliği ve her restore işlemi değişiklik yönetim sürecinden geçseydi orphan user listesi kontrollü olurdu. Sürpriz olmaz, hazırlık yapılırdı.
Periyodik Denetim Orphan user kontrolünü aylık rutin denetiminize ekleyin. Özellikle sunucu değişikliği, yükseltme veya restore sonrasında mutlaka çalıştırın.
Sonuç Orphan user küçük bir teknik detay gibi görünür. Ama biriken orphan kullanıcılar güvenlik açığına, erişim sorununa ve denetim bulgusuna dönüşebilir. Değişiklik sürecine dahil etmek bu riski sıfıra yaklaştırır. Detaylı bilgi için: sqlchangeguard.com
