Tengo dos consultas que recuperan todos los grupos y todos los usuarios en un dominio, Mydomain
TSQL: ¿Cómo obtener una lista de grupos que pertenece a un usuario en Active Directory
--; Get all groups in domain MyDomain
select *
from OpenQuery(ADSI, '
SELECT samaccountname,mail,sn,name, cn, objectCategory
FROM ''LDAP://Mydomain/CN=users,DC=Mydomain,DC=com''
WHERE objectCategory=''group''
ORDER BY cn
')
--; Get all users in domain MyDomain
select *
from OpenQuery(ADSI,'
SELECT objectCategory, cn, sn, mail, name, department,samaccountname
FROM ''LDAP://Mydomaindomain/CN=users,DC=Mydomain,DC=com''
WHERE objectCategory=''user''
ORDER BY cn
')
-- where samaccountname='mylogin'
Lo que me gustaría averiguar es,
¿Cómo se recupera una lista de todos los grupos en MyDomain
a los que pertenece un usuario en particular?
[ACTUALIZACIÓN] pude obtener el resultado opuesto
Dado el nombre del grupo, recuperar todos los usuarios
select *
from OpenQuery(ADSI,
'SELECT objectCategory, cn, sn, mail, name, department
FROM ''LDAP://Mydomain/CN=users,DC=wl-domain,DC=com''
WHERE MemberOf=''cn=_____GROUPNAME_____,CN=users,DC=Mydomain,DC=com''
ORDER BY cn'
)
La razón por la que estaba decidido a averiguar esto fue porque pude hacer exactamente lo contrario: dado el nombre del grupo, recupere todos los usuarios que pertenecen al grupo. (Pregunta actualizada para este propósito) – Sung
sí, porque esa es una lista de todas las entradas de un solo valor, básicamente. El "memberOf" para el usuario es un único atributo que tiene múltiples valores y tiene varias entradas (algo totalmente contrario a 1NF en el diseño relacional) –
con su consulta, obtiene una lista de objetos de usuario en AD - y para cada uno de ellos, solo accedes y usas atributos de un solo valor (cn, sn, objectCategory, etc.) –