none
SQL y Active Directory RRS feed

  • Pregunta

  • Estimados.

    Quisera:

    1.- Tener todos los usuarios del Active Directory en un SQL Server.

    2.- En el SQl Server tener dichos usuarios actualizados, es decir, si en el punto 1, me traje 100 usuarios, con el paso de los dias mientras vayan sacando y agregando usuarios que se vaya actualizando mi SQL Server.

    3.- Supondrè que si tengo mas de una BD y los usuarios cumplen diferentes roles en cada una de llas, soy yo, es decir, el DBA que el debe ir indicando que usaurio pertenece a que rol no ? existe otra forma de ver esto ?

    4.- Si me sacan un usuario del AD supongo que se eliminara del sql ? por ende del rol ?

     

    Saludos.

    PENTA

    sábado, 30 de octubre de 2010 1:37

Respuestas

  • Prueba siguiendo estos pasos para ver si consigues lo que deseas:

     

    Crear un Linked Server para el Active Directory con el siguiente comando:

    Exec
     sp_addlinkedserver 'ADSI'
    , 'Active Directory Service Interfaces'
    , 'ADSDSOObject'
    , 'adsdatasource'
    
    

    En caso de que tengas el "Ad Hoc Distributed Queries" desabilitado, entonces corre esto para habilitarlo:
    sp_configure 'show advanced options'
    , 1
    
    reconfigure
    go sp_configure 'Ad Hoc Distributed Queries' , 1 reconfigure go


    Para consultar las informaciones en el Active Directory debes ejecutar una sentencia tipo "OpenQuery", la cual es la siguiente:


    SELECT
     * 
    FROM
    OpenQuery (ADSI, 'SELECT mail, displayName, userPrincipalName FROM ' 'LDAP://DC=<nombre_dominio>,DC=<.com, .org, etc>' ' WHERE objectCategory = ' '<categoria_objeto>' '' )

     

    En el primer DC pones el nombre de tu dominio, y en el segundo pones la terminación ya sea .com, .org, la que tenga configurada, despues en la categoria de objeto, en tu caso utilizarias ''users''. Puedes utilizar tambié el objectClass para especificar si es un usuario, computadora, etc. (para más información visita: http://msdn.microsoft.com/es-es/library/ms677612%28VS.85%29.aspx )

    Una vez hecha la configuración del Linked Server al Active Directory podrías generar tu propia tabla de Usuarios de Dominio e ir ingresandolos con un cursor, puedes programar un Job o un Mantenimiento o algo por el estilo que monitore si alguno de los Usuarios en la tabla no esta en el Active Directory entonces lo borre, cualquiera de los casos que quieras validar después de aplicar esto sería fácil.

     


    Willy Taveras.-
    • Propuesto como respuesta Willy TaverasModerator sábado, 30 de octubre de 2010 2:48
    • Marcado como respuesta CMAPM martes, 2 de noviembre de 2010 14:52
    sábado, 30 de octubre de 2010 2:39
    Moderador
  • Hola.

    Deberías gestionar la seguridad de tu servidor de bases de datos mediante grupos de Windows. Así, creas unos grupos de windows (en el directorio activo), uno para cada rol. Luego creas el login asociándolo al grupo y le das los permisos adecuados en cada base de datos. Es decir, los permisos se los das a los grupos de Windows.

    Así, las altas y bajas de usuarios las gestiones mediante modificaciones en el directorio activo. Son unos pocos grupos, gestionas unos pocos logins, pero administras todos los usuarios con un esfuerzo administrativo reducido.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    sábado, 30 de octubre de 2010 15:12
    Moderador

Todas las respuestas

  • Prueba siguiendo estos pasos para ver si consigues lo que deseas:

     

    Crear un Linked Server para el Active Directory con el siguiente comando:

    Exec
     sp_addlinkedserver 'ADSI'
    , 'Active Directory Service Interfaces'
    , 'ADSDSOObject'
    , 'adsdatasource'
    
    

    En caso de que tengas el "Ad Hoc Distributed Queries" desabilitado, entonces corre esto para habilitarlo:
    sp_configure 'show advanced options'
    , 1
    
    reconfigure
    go sp_configure 'Ad Hoc Distributed Queries' , 1 reconfigure go


    Para consultar las informaciones en el Active Directory debes ejecutar una sentencia tipo "OpenQuery", la cual es la siguiente:


    SELECT
     * 
    FROM
    OpenQuery (ADSI, 'SELECT mail, displayName, userPrincipalName FROM ' 'LDAP://DC=<nombre_dominio>,DC=<.com, .org, etc>' ' WHERE objectCategory = ' '<categoria_objeto>' '' )

     

    En el primer DC pones el nombre de tu dominio, y en el segundo pones la terminación ya sea .com, .org, la que tenga configurada, despues en la categoria de objeto, en tu caso utilizarias ''users''. Puedes utilizar tambié el objectClass para especificar si es un usuario, computadora, etc. (para más información visita: http://msdn.microsoft.com/es-es/library/ms677612%28VS.85%29.aspx )

    Una vez hecha la configuración del Linked Server al Active Directory podrías generar tu propia tabla de Usuarios de Dominio e ir ingresandolos con un cursor, puedes programar un Job o un Mantenimiento o algo por el estilo que monitore si alguno de los Usuarios en la tabla no esta en el Active Directory entonces lo borre, cualquiera de los casos que quieras validar después de aplicar esto sería fácil.

     


    Willy Taveras.-
    • Propuesto como respuesta Willy TaverasModerator sábado, 30 de octubre de 2010 2:48
    • Marcado como respuesta CMAPM martes, 2 de noviembre de 2010 14:52
    sábado, 30 de octubre de 2010 2:39
    Moderador
  • Hola.

    Deberías gestionar la seguridad de tu servidor de bases de datos mediante grupos de Windows. Así, creas unos grupos de windows (en el directorio activo), uno para cada rol. Luego creas el login asociándolo al grupo y le das los permisos adecuados en cada base de datos. Es decir, los permisos se los das a los grupos de Windows.

    Así, las altas y bajas de usuarios las gestiones mediante modificaciones en el directorio activo. Son unos pocos grupos, gestionas unos pocos logins, pero administras todos los usuarios con un esfuerzo administrativo reducido.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    sábado, 30 de octubre de 2010 15:12
    Moderador
  • OK.

    Si gestiono el acceso a mi servidor a traves de grupos de windows me ahorro estar manteniendo usuarios en el sql server, y solo creo los grupos existentes en el AD.

     

    Eso me gusto !!!

    martes, 2 de noviembre de 2010 14:53