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.
| Parámetro | Descripción |
|---|---|
| adminRole | Especifica el rol administrativo que se va a asumir. Los valores posibles son 'SUPERUSER', 'DATA' o 'ACTION'. |
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.
| 1 | /* No se necesita ninguna tabla de entrada para esta acción */ |
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.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION ACCESSCONTROL.assumeRole / adminRole='SUPERUSER'; |
| 4 | |
| 5 | RUN; |
| 6 |
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.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION ACCESSCONTROL.assumeRole / adminRole=' |
| 4 | DATA'; |
| 5 | |
| 6 | RUN; |
| 7 |
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.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION ACCESSCONTROL.assumeRole / adminRole='ACTION'; |
| 4 | |
| 5 | RUN; |
| 6 |
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`.
| 1 | PROC CAS; |
| 2 | /* 1. Muestra los roles actuales del usuario 'sasdemo' */ |
| 3 | ACTION BUILTINS.showRolesIn / principal='sasdemo'; |
| 4 | |
| 5 | /* 2. Asume el rol de Superusuario */ |
| 6 | ACTION ACCESSCONTROL.assumeRole / adminRole='SUPERUSER'; |
| 7 | |
| 8 | /* 3. Muestra los roles de nuevo para confirmar que 'Superusuario' ha sido añadido */ |
| 9 | ACTION BUILTINS.showRolesIn / principal='sasdemo'; |
| 10 | |
| 11 | /* 4. Abandona el rol de Superusuario para volver a los privilegios normales */ |
| 12 | ACTION ACCESSCONTROL.dropRole / adminRole='SUPERUSER'; |
| 13 | |
| 14 | /* 5. Muestra los roles una última vez para confirmar la reversión */ |
| 15 | ACTION BUILTINS.showRolesIn / principal='sasdemo'; |
| 16 | RUN; |
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 ...
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...
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 ...