Obter lista de usuários do Active Directory pelo SQL Server

Faz tempo desde meu ultimo post por aqui. O de hoje é rápido, ainda não cheguei a aplica-lo em um caso real mas por curiosidade procurei saber se seria possível. Já pensou em fazer um select nos usuários do AD como você faz no SQL Server? Pois é, conseguimos tal efeito ao utilizar o SQL Server com um linked server para nosso servidor de AD. Veja abaixo.

Criamos o Linked Server de nome ADSI (ou qual nome desejar) usando o ADSDSOObject – Microsoft OLE DB Provider for Microsoft Active Directory Service.

EXEC master.dbo.sp_addlinkedserver
  @server = N'ADSI'
, @srvproduct=N'Active Directory Services'
, @provider=N'ADsDSOObject'
, @datasrc=N'server_name.your_domain.com'

A execução dos comandos será realizada utilizado o contexto do login do usuário em contexto atual. Ou você pode mudar o comportamento deste criando um login a ser utilizado, como demonstrado abaixo.

EXEC master.dbo.sp_addlinkedsrvlogin 
  @rmtsrvname=N'ADSI'
, @useself=N'False'
, @locallogin=NULL
, @rmtuser=N'your_domain\domain_user'
, @rmtpassword='********'

Então o select. Para saber sobre as demais colunas que você pode obter de uma olhada em MSDN – All Attributes Active Directory.

SELECT * FROM OPENQUERY (
  ADSI,
  'SELECT distinguishedName
  FROM ''LDAP://DC=your_domain,DC=com'''
)

Links uteis:

ADSDSOObject – Microsoft OLE DB Provider for Microsoft Active Directory Service

MSDN – All Attributes Active Directory

randomactsofsql – Querying Active Directory with T-SQL

Esse post foi publicado em SQLServer e marcado , , , , , , , , , , , , . Guardar link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s