Gestión y Verificación de Grupos de Usuarios de SAS Viya

ATTENTION : Ce contenu est DÉSACTIVÉ. Il est invisible pour les visiteurs.
Nivel de dificultad
Principiante
Publicado el :
Attention : Este código requiere privilegios de administrador.
El script procede en varias etapas clave: 1) Generación de un nombre de grupo único y creación del grupo correspondiente a través de la macro `%ms_creategroup`. 2) Recuperación de todos los grupos del sistema usando `%ms_getgroups` y validación de la presencia del grupo recién creado. El identificador del grupo (GID) se extrae dinámicamente. 3) Adición de un usuario específico a este grupo a través de `%ms_adduser2group`. 4) Verificación final de la pertenencia del usuario al grupo filtrando los grupos por usuario (`%ms_getgroups` con la opción `user=`) y confirmando la presencia del GID. A lo largo del proceso, se utilizan macros de aserción (`%mp_assert`, `%mp_assertdsobs`, `%mp_assertscope`) para garantizar la integridad y el éxito de las operaciones, registrando los resultados de las pruebas en el conjunto de datos `work.test_results`. Este script es esencial para las tareas de administración y prueba de los derechos de acceso.
Análisis de datos

Type : CREATION_INTERNE


El script no se basa en conjuntos de datos externos predefinidos. Genera y manipula conjuntos de datos temporales (`work.test1`, `work.test3`, `work.test_results`) para almacenar la información recuperada de los grupos del sistema y los resultados de las aserciones. La interacción principal se realiza con los metadatos de seguridad y de usuario del entorno SAS Viya.

1 Bloque de código
Macro d'Administration
Explicación :
Este bloque inicializa el proceso generando un nombre de grupo único de 8 caracteres a través de `%mf_getuniquename`. Este nombre es utilizado posteriormente por la macro `%ms_creategroup` para crear un nuevo grupo de usuarios en el entorno SAS Viya. El parámetro `desc` asigna una descripción al grupo y `mdebug` activa el modo de depuración. El parámetro `outds=test1` indica que la información relativa a la creación del grupo puede escribirse en un conjunto de datos temporal `test1` (aunque `ms_creategroup` puede no crear observaciones en `outds` para una creación simple exitosa, a menudo se usa para capturar información de estado o error).
¡Copiado!
1%let group=%substr(%mf_getuniquename(),1,8);
2%ms_creategroup(&group, desc=The description,mdebug=&sasjs_mdebug,outds=test1)
2 Bloque de código
Macro d'Administration / Assertion Data
Explicación :
Este bloque captura el estado inicial del entorno para probarlo (`%mp_assertscope(SNAPSHOT)`). Luego, se invoca la macro administrativa `%ms_getgroups` para recuperar todos los grupos existentes en el sistema, cuyos detalles se almacenan en el conjunto de datos `work.test1`. Finalmente, `%mp_assertscope(COMPARE)` compara el estado actual del entorno con la instantánea inicial. La opción `ignorelist` permite excluir ciertas macrovariables de la comparación, a menudo porque pueden variar naturalmente sin indicar un fallo de la prueba. El objetivo es asegurar que la recuperación de los grupos se realizó según lo previsto y que ningún efecto secundario inesperado modificó el entorno global.
¡Copiado!
1%mp_assertscope(SNAPSHOT)
2%ms_getgroups(outds=work.test1,mdebug=&sasjs_mdebug)
3%mp_assertscope(COMPARE
4 ,ignorelist=MCLIB2_JADP1LEN MCLIB2_JADPNUM MCLIB2_JADVLEN
5)
3 Bloque de código
DATA STEP / Assertion Data
Explicación :
Este segmento verifica la correcta creación del grupo. Primero, `%mp_assertdsobs` asegura que el conjunto de datos `work.test1` (que contiene los grupos) contenga al menos una observación, indicando que no está vacío. Luego, se utiliza un `DATA _NULL_` para recorrer `work.test1`. Para cada observación, todas las variables se muestran en el log (`putlog (_all_)(=)`). Si el nombre del grupo encontrado en `work.test1` coincide con el nombre del grupo creado (`&group`), la macro-variable `test2` se establece en 1 y el identificador del grupo (`groupid`) se almacena en la macro-variable `gid` para su uso posterior. Finalmente, `%mp_assert` valida que `test2` sea igual a 1, confirmando que el grupo se ha creado con éxito y se ha encontrado en la lista de grupos del sistema. El resultado de esta aserción se registra en `work.test_results`.
¡Copiado!
1%mp_assertdsobs(work.test1,test=ATLEAST 1)
2 
3%let test2=0;
4%put &=group;
5DATA _null_;
6 SET work.test1;
7 putlog (_all_)(=);
8 IF upcase(name)="%upcase(&group)" THEN DO;
9 putlog "&group found!";
10 call symputx('test2',1);
11 call symputx('gid',groupid); /* used in next test */
12 END;
13RUN;
14 
15%mp_assert(
16 iftrue=("&test2"="1"),
17 desc=Checking group was created,
18 outds=work.test_results
19)
4 Bloque de código
Macro d'Administration / DATA STEP / Assertion Data
Explicación :
Este bloque finaliza la prueba verificando la funcionalidad de añadir un usuario a un grupo. Se llama a la macro `%ms_adduser2group` para asociar un usuario (con el identificador `uid=1`) al grupo cuyo identificador está almacenado en `&gid`. Luego, se reutiliza `%ms_getgroups`, esta vez con el parámetro `user=secretuser`, para recuperar los grupos a los que 'secretuser' está asignado explícitamente. Los resultados se guardan en `work.test3`. Un `DATA _NULL_` analiza `work.test3` para determinar si el `groupid` creado está presente en la lista de grupos de 'secretuser', actualizando `test3` en consecuencia. Finalmente, `%mp_assert` asegura que `test3` sea 1, confirmando que el usuario se ha añadido correctamente al grupo y que esta pertenencia es verificable. Este resultado también se añade a `work.test_results`.
¡Copiado!
1/* now check if the filter for the groups for a user works */
2 
3/* add a member */
4%ms_adduser2group(uid=1,gid=&gid)
5 
6%ms_getgroups(user=secretuser,outds=work.test3)
7 
8%let test3=0;
9DATA _null_;
10 SET work.test3;
11 IF groupid=&gid THEN call symputx('test3',1);
12RUN;
13 
14%mp_assert(
15 iftrue=("&test3"="1"),
16 desc=Checking group list was returned for a user,
17 outds=work.test_results
18)
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 : El script utiliza macros (ej: `ms_creategroup`, `ms_getgroups`, `mp_assert`) que probablemente pertenecen a bibliotecas de macros SAS sujetas a derechos de autor, como sugiere la estructura de nombres y las referencias en los comentarios (potencialmente de HMS Analytical Software GmbH o SAS Institute Inc., como en `macro_without_brief_tag.sas` y `mfv_existfile.json`).


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.