Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Realizando queries no AD via SQL Server

Algumas vezes precisamos realizar queries onde temos que buscar dados no Active Directory e nem sempre é uma tarefa simples.

Abaixo veremos passo a passo como configurar o SQL Server para realizar consultas no AD.

O primeiro passo é a criação de um linked server para o AD e para isso você deve clicar com o botão direito em cima de Linked Servers.

Ao abrir a tela de configuração a aba General deverá ser preenchida da seguinte forma

Na aba Security a conexão tem que ser feita por um login remoto e que tenha permissão de leitura no Active Directory

Por fim a aba Server Options não precisa sofrer nenhuma alteração

A realização de consultas pode ser feita através de OpenQuery conforme o exemplo abaixo:

SELECT top 5 givenname
FROM OpenQuery (ADSI, 'SELECT givenname
                       FROM  ''LDAP://DOMAIN.com/OU=USERS,DC=DOMAIN,DC=com''
                       WHERE objectCategory = ''Person'' 
                       AND objectClass = ''user''
') AS tblADSI

 

Obs. Existe uma limitação de linhas quando se consulta informações no AD, abaixo deixei uma breve explicação com um link onde pode ser obtidas maiores informações.

 

MaxPageSize – este valor controla o número máximo de objetos que são retornados em um resultado de pesquisa único, independentemente do quão grande é de cada objeto retornado. Para realizar uma pesquisa em que o resultado pode exceder esse número de objetos, o cliente deve especificar o controle de pesquisa paginada. Isso serve para agrupar os resultados retornados em grupos que são maiores do que o valor de MaxPageSize. Para resumir, MaxPageSize controla o número de objetos retornados em um resultado de pesquisa único.

Valor padrão: 1.000

Fonte: https://support.microsoft.com/pt-br/help/315071/how-to-view-and-set-ldap-policy-in-active-directory-by-using-ntdsutil