SQL Server İle AD Kullanıcı ve Bilgisayar Bilgilerine Ulaşma

SQL Server ve T-SQL yetenekleri ile her zaman dikkatimi ve ilgimi çekmiştir. Okul yıllarımızda sadece “SELECT * FROM table1” cümlesi ile girdiğimiz SQL Server dünyasında bugün T-SQL kodları ile Active Directory sunucumuza bağlanıp sistemimize kayıtlı kullanıcı hesapları ve bilgisayarların bilgilerini sorguluyor olacağız.

SQL Server üzerinden AD’ye ulaşmak için öncelikle SQL Server’a “Linked Server (Bağlı Sunucu)” eklenmesi gerekmektedir. Linked Server eklenebilmesi için gerekli olan yetkiler;

SSMS İle Linked Server Ekleme

Açılan “New Linked Server” ekranına aşağıdaki bilgileri giriyoruz.

Bağlantı ile ilgili bilgiler girildikten sonra “Security” tabına geçiş yapılarak aşağıdaki gibi seçim yapılır.

AD Servisinden Kullanıcı Listesi Sorgulama

select  *
from  openquery([ADSERVER], '
select  givenName,
sn,
sAMAccountName,
displayName,
mail,
telephoneNumber,
mobile,
physicalDeliveryOfficeName,
department,
division
from    ''LDAP://dc=mydomain,dc=local''
where   objectCategory = ''Person''
        and
        objectClass = ''user'' ')

Sadece aktif kullanıcıları sistemden sorgulamak için de sorguya ”userAccountControl:1.2.840.113556.1.4.803:”<>2 şartı eklenir. Tek bir kullanıcı bilgilerini sorgulamak için de sAMAccountName = ”kullaniciAd”

AD Servisinden Bilgisayar Listesi Sorgulama

select  *
from  openquery([ADSERVER], '
select 
sAMAccountName,
displayName
from    ''LDAP://dc=myDomain,dc=local''
where   objectCategory = ''Computer''
        and
        objectClass = ''computer''
')

Sadece belli bir OU altındaki kullanıcı veya bilgisayarların sorgulanması gerektiği durumda sorguda yer alan from alanındaki LDAP yoluna ilgili OU adresi verilir. Örneğin aşağıdaki kod sadece bir OU altındaki kullanıcıları sorgulamaktadır.

select  *
from  openquery([ADSERVER], '
select  givenName,
sn,
sAMAccountName,
displayName,
mail,
telephoneNumber,
mobile,
physicalDeliveryOfficeName,
department,
division
from    ''LDAP://ou=bakim,ou=MyFabric,ou=Users,ou=MyCompany,dc=myDomain,dc=local''
where   objectCategory = ''Person''
        and
objectClass = ''user''
')

LDAP yolunu oluşturmak için bir örnek verecek olursak da;

Normal YolLDAP Yolu
myDomain.com/Users/Office1/User1LDAP://CN=User1,OU=Office1,OU=Users,DC=myDomain,DC=com

Peki bu konuyu nerede kullanacağız diye bir soru gelecek olursa da örnek bir iki senaryo ile sizleri SQL Server’ın derya deniz dünyası ile baş başa bırakalım.

İlk senaryomuz: Kullanıcı ve bilgisayar verilerini günlük bir job ile AD sunucusundan sorgulayıp bir veri tabanına kaydederek sistemimizde oluşan değişiklikleri takip edebileceğimiz güzel bir veri tabanına sahip olabiliriz.

İkinci senaryomuz da: Kurum içerisinde geliştirilen yazılımlar da kullanıcı oluşturulurken ilgili kişinin bilgileri sistemden sorgulanarak kurum içerisinde kullanılan yazılımlarda veri tutarlılığı sağlanabilir.

Exit mobile version