Publicado el :
Administración CREATION_INTERNE

Extracción de IDs de usuario del dominio DefaultAuth

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.
El script inicializa una conexión al servidor de metadatos de SAS© configurando opciones como el host (`metaserver`), el puerto (`metaport`), el usuario (`metauser`), la contraseña (`metapass`), el repositorio (`metarepository`) y el protocolo (`metaprotocol`). Luego, crea un conjunto de datos temporal `work.users`. Utilizando las funciones `metadata_getnobj` y `metadata_getattr`, busca el dominio de autenticación 'DefaultAuth', recupera su URI y su identificador interno. Posteriormente, se utiliza un bucle `do while` para iterar sobre todos los objetos de inicio de sesión (Login) asociados a este dominio. Para cada objeto de inicio de sesión encontrado, se extrae el identificador de usuario (`UserID`) y se agrega al conjunto de datos `work.users`. El conjunto de datos final solo conserva la variable `user_id`.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos `work.users` se crea y se rellena dinámicamente a partir de la información extraída del servidor de metadatos de SAS a través de las funciones `metadata_getnobj` y `metadata_getattr`. No hay una fuente de datos externa al script (archivo, base de datos) ni un conjunto de datos SASHELP utilizado directamente como entrada.

1 Bloque de código
OPTIONS
Explicación :
Este bloque configura las opciones de conexión al servidor de metadatos de SAS. Especifica la dirección del servidor (`metaserver`), el puerto (`metaport`), las credenciales del usuario (`metauser`, `metapass`), el repositorio de metadatos (`metarepository`) y el protocolo de comunicación (`metaprotocol`). Esta información es esencial para establecer la conexión e interrogar los metadatos.
¡Copiado!
1options
2 metaserver="<hostname>"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="<password>"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloque de código
DATA STEP Data
Explicación :
Este bloque `DATA STEP` es responsable de la creación del conjunto de datos `work.users` y de su llenado con los identificadores de usuario. Declara e inicializa las variables necesarias. Utiliza `metadata_getnobj` para encontrar el dominio de autenticación 'DefaultAuth' y su URI, y luego `metadata_getattr` para recuperar su identificador. Luego, un bucle `do while` recorre todos los objetos de inicio de sesión (Login) asociados a este dominio. Para cada Login, el identificador de usuario (`UserID`) se extrae a través de `metadata_getattr` y se agrega al conjunto de datos `work.users`. Solo la variable `user_id` se conserva en el conjunto de datos final.
¡Copiado!
1DATA work.users; /* Create work.users library to house data. */
2 
3/* declare variables */
4 
5LENGTH
6 ad_uri $ 256
7 ad_id $ 256
8 login_uri $ 256
9 user_id $ 256;
10 
11/* initialize variables. */
12 
13call missing(ad_uri,ad_id,login_uri,user_id);
14keep user_id; /* only keep the user ids in the table. */
15 
16n=1;
17/* Get the URI for the DefaultAuth Authentication Domain. */
18adrc=metadata_getnobj("omsobj:AuthenticationDomain? @code_sas_json_prod_multi/libname_de.json = 'DefaultAuth'",1,ad_uri);
19rc=metadata_getattr(ad_uri,"Id",ad_id);
20 
21/* Get number of login objects that have the DefaultAuth authentication */
22/* domain associated with them, as well as the URI of the first login. */
23loginrc=metadata_getnobj("omsobj:Login?Login[Domain/AuthenticationDomain[ @Id='"||ad_id||"']",n,login_uri);
24DO while(loginrc>0);
25 /* extract the user ID from login */
26 rc=metadata_getattr(login_uri,"UserID",user_id);
27 OUTPUT;
28 n+1;
29 /* Get the URI of the next login. */
30 loginrc=metadata_getnobj("omsobj:Login?Login[Domain/AuthenticationDomain[ @Id='"||ad_id||"']",n,login_uri);
31END;
32RUN;
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 : Author: Greg Wootton Date: 08FEB2017