Ramon Torras

TECHNOLOGY ENTHUSIAST

Consultas contra Directorio Activo desde SQLServer

 

Si alguna vez tenéis necesidad de listar los usuarios, grupos o otra información del Active Directory (AD) u otro LDAP en este post describo como hacerlo.

 

Mediante Servidor enlazado

Creamos un Linked Server mediante el driver de LDAP.

Opcion 1: Mediante línea de comandos

  • EXEC
    sp_addlinkedserver @server = N
    ‘ADSI’, @srvproduct=N‘Active Directory Service Interfaces’, @provider=N‘ADSDSOObject’, @datasrc=N‘adsdatasource’

 

Opción 2: Mediante Manager

Creamos el server con un nombre que sea intuitivo. I lo más importante: Seleccionar el provider correcto.

  • OLE DB Provider for Microsoft Directory Services
    • Guardamos y listos!

 

 

Iniciamos una Query e introducimos estos comandos de ejemplo sobre el dominio:

 

–Select all Groups which name starts with D (SQL Dialect)

SELECT

*

FROM
OPENROWSET(‘ADSDSOObject’, ”,’SELECT cn, ADsPath FROM ”LDAP://DC=Fabricam,DC=com” WHERE objectCategory=”group” AND cn=”D*”’)

 –Select all users (LDAP Dialect) providing also credentials and flags

SELECT

*

FROM
OPENROWSET(‘ADSDSOObject’, ‘User ID=UserName;Password=UserPassword;ADSI Flag=0x11;’,'<LDAP://OU=Sales,DC=Fabricam,DC=com>;(&(objectCategory=user)(objectClass=user));cn,ADsPath;subtree’)

 

 

 

 

Source: http://www.pawlowski.cz/2011/04/querying-active-directory-sql-server-t-sql/

Comments are currently closed.