Microsoft SQL Server’ın Linked Server özelliği ile Active Directory yapınıza bağlanabilir ve group, bilgisayar, kullanıcı gibi nesnelerin bilgilerini sorgular ile çekebilirsiniz.
Linked Server olarak active directory yapınıza bağlanmak için aşağıdaki sorguyu çalıştırın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
-- Ortaç Demirel -- USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Service Interfaces', @provider=N'ADSDSOObject', @datasrc=N'adsdatasource' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI',@useself=N'False',@locallogin=NULL,@rmtuser=N'ortacdemirel\administrator',@rmtpassword=’1234qqqQ’ GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation compatible', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'data access', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'dist', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'pub', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc out', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'sub', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'connect timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation name', @optvalue=null GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'lazy schema validation', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'query timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'use remote collation', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'remote proc transaction promotion', @optvalue=N'true' GO |
İkinci EXEC ile başlayan satırının sonuna kendi domain admin hesabınızı ve parolasını girmelisiniz.
Bağlantımız Server Objects > Linked Server altına başarılı bir şekilde oluşturulmaktadır.
Aşağıdaki sorgu ile domainimizdeki nesneleri çekebiliriz.
1 2 3 4 5 6 7 8 9 |
-- Ortaç Demirel -- SELECT * FROM OpenQuery ( ADSI, 'SELECT * FROM ''LDAP://ortacdemirel.com/DC=ortacdemirel,DC=com'' WHERE objectClass = ''User'' ') |
Bu sorguları nesnelerin attribute lerine göre de hazırlayabiliriz.
1 2 3 4 5 6 7 8 9 10 |
-- Ortaç Demirel -- SELECT * FROM OpenQuery ( ADSI, 'SELECT physicalDeliveryOfficeName,telephoneNumber,wWWHomePage, displayName,givenname,mail,title, sAMAccountName, FROM ''LDAP://ortacdemirel.com/OU=ankara,DC=ortacdemirel,DC=com'' WHERE Name= ''ortac demirel'' ') AS tblADSI |
Select ten sonra yer alan attribute leri active directory üzerinde yer alan attribute editor den alabilirsiniz. Son yazılan attibute başta çıkmaktadır. Bazı attribute lar select sorgusuna uygun olmayabilir. Bu durumda hata alacaksınız. Attribute u kaldırıp deneyebilirsiniz.