Publicado el :
Administración CREATION_INTERNE

Extracción de identificadores de usuario por grupo (Metadatos SAS 9)

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Este programa establece una conexión a un servidor de metadatos SAS© 9 heredado. Luego consulta los metadatos para encontrar un grupo específico, listar sus miembros (personas) y recuperar su información de inicio de sesión asociada. Nota importante: Este código está explícitamente diseñado para SAS© 9.x (usando la interfaz de metadatos) y no funcionará en una instalación estándar de SAS© Viya 4 sin acceso a un servidor de metadatos SAS© 9 externo.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan dinámicamente consultando el servidor de metadatos a través de las funciones SAS `metadata_*`.

1 Bloque de código
GLOBAL OPTIONS
Explicación :
Configuración de las opciones de conexión al servidor de metadatos SAS 9 (dirección, puerto, usuario, contraseña) y definición de la macrovariable del grupo a analizar.
¡Copiado!
1options metaserver="meta.demo.sas.com"
2 metaport=8561
3 metauser="sasadm @saspw"
4 metapass="Password"
5 metarepository=Foundation
6 metaprotocol=Bridge;
7 
8/* Provide a group name you would like to query. */
9%let groupname=SAS Administrators;
2 Bloque de código
DATA STEP Data
Explicación :
Paso DATA principal que navega por la estructura de metadatos. Resuelve el objeto Grupo, recorre sus identidades de miembro y luego desciende a los objetos de Inicio de sesión para extraer el ID de usuario y el dominio de autenticación, almacenando el resultado en la tabla `usertab`.
¡Copiado!
1DATA usertab;
2LENGTH type id group_uri group_name per_uri per_name log_uri user_id ad_uri ad_name $ 256;
3call missing(type,id,group_uri,group_name,per_uri,per_name,log_uri,user_id,ad_uri,ad_name);
4obj="omsobj:IdentityGroup? @DisplayName='&groupname'";
5groupCount=metadata_resolve(obj,type,id);
6put groupCount=;
7IF groupCount = 0 THEN DO;
8 put "ERROR: No groups named &groupname defined in the repository.";
9 stop;
10END;
11IF groupCount > 0 THEN DO n=1 to groupCount;
12 rc=metadata_getnobj(obj,n,group_uri);
13 rc=metadata_getattr(group_uri,"DisplayName",group_name);
14 put group_name=;
15 memCount=metadata_getnasn(group_uri,"MemberIdentities",1,per_uri);
16 IF memCount > 0 THEN DO m=1 to memCount;
17 rc=metadata_getnasn(group_uri,"MemberIdentities",m,per_uri);
18 rc=metadata_getattr(per_uri,"DisplayName",per_name);
19 logCount=metadata_getnasn(per_uri,"Logins",1,log_uri);
20 IF logCount > 0 THEN DO o=1 to logCount;
21 rc=metadata_getnasn(per_uri,"Logins",o,log_uri);
22 rc=metadata_getattr(log_uri,"UserID",user_id);
23 rc=metadata_getnasn(log_uri,"Domain",1,ad_uri);
24 rc=metadata_getattr(ad_uri,"Name",ad_name);
25 OUTPUT;
26 call missing(log_uri,user_id,ad_uri,ad_name,group_name,per_name);
27 END;
28 END;
29END;
30keep group_name per_name ad_name user_id;
31RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0