accessControl

assumeRole

Descripción

Asume un rol administrativo para la sesión actual de CAS. Esta acción permite a un usuario elevar temporalmente sus privilegios para realizar tareas administrativas, como la gestión de datos, la ejecución de acciones restringidas o la administración de roles, sin necesidad de tener esos privilegios de forma permanente. Es una práctica de seguridad fundamental para aplicar el principio de mínimo privilegio.

accessControl.assumeRole { adminRole="string" };
Parámetros
ParámetroDescripción
adminRoleEspecifica el rol administrativo que se va a asumir. Los valores posibles son 'SUPERUSER', 'DATA' o 'ACTION'.
No se requiere creación de datos

La acción `assumeRole` es una acción de administración y seguridad que no opera sobre datos en una tabla. Su función es cambiar el contexto de seguridad de la sesión actual.

¡Copiado!
1/* No se necesita ninguna tabla de entrada para esta acción */

Ejemplos

Este ejemplo muestra cómo un usuario puede asumir el rol de 'Superusuario' para obtener acceso sin restricciones durante la sesión actual. Este es el nivel más alto de privilegios en CAS.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3ACTION ACCESSCONTROL.assumeRole / adminRole='SUPERUSER';
4 
5RUN;
6 
Resultado :
La acción devuelve una nota de éxito en el log, confirmando que la sesión actual ahora tiene privilegios de superusuario. Todas las acciones posteriores en esta sesión se ejecutarán con estos privilegios elevados.

Este ejemplo muestra cómo asumir el rol de 'Administrador de Datos'. Este rol otorga acceso sin restricciones a todas las caslibs, tablas y columnas, pero no a la ejecución de acciones restringidas ni a la gestión de roles.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3ACTION ACCESSCONTROL.assumeRole / adminRole='
4DATA';
5 
6RUN;
7 
Resultado :
La sesión obtiene privilegios elevados específicamente para la manipulación de datos. El usuario podrá acceder, modificar o eliminar cualquier tabla en cualquier caslib, pero no podrá ejecutar acciones de administración del servidor.

Este ejemplo muestra cómo asumir el rol de 'Administrador de Acciones'. Este rol otorga acceso sin restricciones para ejecutar cualquier conjunto de acciones o acción, pero no para acceder a los datos de forma no autorizada.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3ACTION ACCESSCONTROL.assumeRole / adminRole='ACTION';
4 
5RUN;
6 
Resultado :
La sesión obtiene la capacidad de ejecutar cualquier acción de CAS, incluidas aquellas que normalmente están restringidas a los administradores, sin otorgar permisos adicionales sobre los datos.

Un ejemplo completo que muestra cómo verificar los roles actuales de un usuario, asumir el rol de Superusuario, verificar nuevamente para confirmar el cambio, y finalmente, revertir el rol para volver al estado de privilegios original usando la acción `dropRole`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2/* 1. Muestra los roles actuales del usuario 'sasdemo' */
3ACTION BUILTINS.showRolesIn / principal='sasdemo';
4 
5/* 2. Asume el rol de Superusuario */
6ACTION ACCESSCONTROL.assumeRole / adminRole='SUPERUSER';
7 
8/* 3. Muestra los roles de nuevo para confirmar que 'Superusuario' ha sido añadido */
9ACTION BUILTINS.showRolesIn / principal='sasdemo';
10 
11/* 4. Abandona el rol de Superusuario para volver a los privilegios normales */
12ACTION ACCESSCONTROL.dropRole / adminRole='SUPERUSER';
13 
14/* 5. Muestra los roles una última vez para confirmar la reversión */
15ACTION BUILTINS.showRolesIn / principal='sasdemo';
16RUN;
Resultado :
El log mostrará los resultados de la acción `showRolesIn` tres veces. La primera lista no incluirá el rol de Superusuario. La segunda lista mostrará que el rol de Superusuario ha sido añadido a la sesión. La tercera lista mostrará que el rol de Superusuario ha sido eliminado, confirmando que la sesión ha vuelto a su estado de privilegios original.

FAQ

¿Qué hace la acción `assumeRole`?
¿Cuál es el propósito del parámetro `adminRole`?
¿Cuáles son los valores posibles para el parámetro `adminRole`?
¿Qué privilegios otorga el rol `ACTION`?
¿Qué privilegios otorga el rol `DATA`?
¿Qué privilegios otorga el rol `SUPERUSER`?
¿Cuál es el valor predeterminado del parámetro `adminRole`?

Escenarios asociados

Caso de uso
Auditoría de Datos Sensibles por un Analista de Cumplimiento

Un analista del departamento de cumplimiento normativo necesita acceso temporal a tablas de clientes que se encuentran en una caslib restringida para realizar una auditoría. El ...

Caso de uso
Ejecución de un Conjunto de Acciones de Modelado Restringido

Un científico de datos junior necesita ejecutar un modelo de scoring (`aStore.score`), cuya acción está restringida a usuarios senior. El objetivo es permitirle ejecutar el scor...

Caso de uso
Prueba de Rol por Defecto (SUPERUSER) y Verificación de Reversión Completa

Un administrador de seguridad de SAS Viya está validando los protocolos de emergencia. Necesita confirmar que la acción `assumeRole` sin especificar un rol asigna correctamente ...