Anuncios

IT Certification Category (Spanish)468x60

jueves, 23 de diciembre de 2010

Cómo hacer consultas de SQL Server a Active Directory

Como si no tuviera nada útil que hacer, voy a dedicarme ahora a mostrar cómo guardar y trabajar con SQL Server y Active Directory.
Active Directory es una base de datos del Sistema operativo Windows que guarda información corporativa de usuarios, teléfonos, direcciones, impresoras, carpetas compartidas, etc.

En muchos casos, la gente desea importar la información de Active Directory en bases de datos. En este caso, les voy a enseñar cómo hacer consultas de SQL Server a Active Directory.

El primer paso, es crear un linked server. Este es un link que hace SQL Server con otras bases de datos. Con SQL Server puedo hacer consultas a Access, Oracle, MySQL, etc. En este caso desde SQL Server voy a hacer es conectarme y crearme un link de SQL Server a Active Directory.

En SQL Server Management Studio ejecuto las siguientes sentencias:

EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
GO

He creado un linked server llamado ADSI que se conecta a Active Directory.
El siguiente paso es habilitar la opción para hacer consultas distribuidas. Para eso hay que habilitar las opciones avanzadas primero y luego habilitar la opción indicada:

sp_configure 'show advanced options', 1
reconfigure with override


sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure


Ahora vamos a mostrar a los usuarios del contenedor Users de Active Directory, del dominio contoso.com

SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
   'SELECT Name, SN, ST
   FROM ''LDAP://ADSISrv/ CN=Users,DC=contoso,DC=com''
   WHERE objectCategory = ''Person'' AND
      objectClass = ''contact''')

SELECT * FROM OpenQuery(ADSI, 'SELECT * FROM ''LDAP://OU=marketing,DC=contoso,DC=com'' WHERE objectCategory=''user'' ')

En este siguiente ejemplo estoy creando una tabla llamada ListaUsuarios y le estoy pasando los datos de Active Directory.

SELECT *
INTO ListaUsuarios
FROM OpenQuery(ADSI, 'SELECT name,
mail, logonHours,pwdLastSet,creationTime,
forceLogoff,lockoutDuration,
lockOutObservationWindow,displayName,
userPrincipalName
FROM ''LDAP://OU=Marketing,DC=contoso,DC=com'' WHERE objectCategory=''user'' ')


Entendiste el artículo ?, te perdiste ?, esto era chino ?, 不明白嗎?,muy fácil ?, escribe tus comentarios y dudas a este blog.

People who read this post also read :