Sql Server Tüm Kullanıcıları Listeleme

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Sql Server’da kayıtlı tüm kullanıcıları listelemeyi anlatacağım. Hadi başlayalım !
Sql Server’da kendi veritabanlarımızı oluşturabildiğimiz gibi Sql Server’ın kendi oluşturduğu ve kullandığı veritabanları da bulunmakta ve herşey bu veritabanlarında saklanmakta. Örneğin triggerlar, fonksiyonlar, kullanıcılar, stored procedureler vs kısaca aklınıza gelen herşeyi Sql Server kendi veritabanlarına yazıyor. Örneğin siz Sql Server’a giriş yapmak istediğinizde yazdığınız kullanıcı adı ve şifre bilgileri kullanıcıların saklandığı veritabanında aranıyor ve kayıt varsa giriş yapmanıza izin veriyor.
Sql Server tarafından kaydedilen veriler genellikle sys veritabanı altındaki tablolarda saklanıyor. Kullanıcıların saklandığı tablonun adı ise database_principals. sys veritabanına erişim yetkisi bulunan herkes sys veritabanı altındaki tabloları okuyabilmekte fakat okuma yetkiniz yoksa bundan sonra yazacağımız Sql kodlarında hata alırsanız şaşırmayın 🙂
database_principals tablosunda 14 tane sütun var fakat burada bizi ilgilendiren name ve type sütunları. name sütunu kullanıcının kullanıcı adını, type ise ne tür bir kullanıcı olduğunu belirtiyor. Örneğin bir kullanıcı application role kullanıcısı olabilir fakat application role kullanıcıları ile Sql Server’da oturum açılamaz, biz sadece giriş yapabilen kullanıcıları listeleyeceğiz. Giriş yapabilen kullanıcıların type değeri S yada U olmakta. S; Sql kullanıcısı, U; Windows kullanıcısı anlamına geliyor. Yani Sql Server’a giriş yaparken Windows Authentication yada Sql Server Authentication seçiyoruz ya, işte U değeri hangisinin seçildiğini temsil ediyor. Yani biz database_principals tablosundan type değeri S yada U olanları alırsak aslında Sql Server’a giriş yetkisi bulunan kullanıcıları bulmuş oluruz. Yani şöyle bir sorgu yazabiliriz;
select * from sys.database_principals where type = 'U' or type = 'S';
Evet Sql Server’da kayıtlı kullanıcıları listeleme bu şekilde idi. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.