accessControl

commitTransaction

Descripción

Confirma y aplica permanentemente todos los cambios realizados dentro de una transacción de control de acceso. Esta acción guarda todas las modificaciones en el servidor, libera cualquier objeto que haya sido bloqueado (checked-out) durante la transacción y la finaliza. Es el paso final para hacer efectivos los cambios en los permisos.

accessControl.commitTransaction;
Creación de Datos de Prueba

Crea una caslib y una tabla de datos simple para usar en los ejemplos. Esto es necesario para tener un objeto sobre el cual modificar los permisos.

¡Copiado!
1PROC CAS;
2 caslib mycaslib datasource=(srctype="path") path="/tmp/casdata";
3 DATA mycaslib.test_table;
4 x=1; y=2;
5 RUN;
6 QUIT;

Ejemplos

Este ejemplo inicia una transacción, realiza un cambio en los controles de acceso de una caslib y luego confirma la transacción para aplicar los cambios de forma permanente.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 ACCESSCONTROL.assumeRole / adminRole="superuser"; RUN;
3 ACCESSCONTROL.startTransaction; RUN;
4 ACCESSCONTROL.repAllAcsCaslib / caslib="mycaslib" acs={{principal="guest", perm="Read"}}; RUN;
5 ACCESSCONTROL.commitTransaction; RUN;
6 QUIT;
Resultado :
La transacción se confirma exitosamente. Los nuevos permisos para la caslib 'mycaslib' ahora están activos en el servidor.

Este ejemplo muestra un flujo completo: iniciar una transacción, bloquear un objeto (la caslib 'mycaslib'), modificar sus permisos, verificar el estado de la transacción y finalmente confirmarla. Esto asegura que los cambios se apliquen como se esperaba.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 ACCESSCONTROL.assumeRole / adminRole="superuser"; RUN;
3 ACCESSCONTROL.startTransaction; RUN;
4 ACCESSCONTROL.checkOutObject / objectUri="/cas/caslibs/mycaslib"; RUN;
5 ACCESSCONTROL.updSomeAcsCaslib / caslib="mycaslib" acs={{principal="sasusers", perm="Read"}}; RUN;
6 ACCESSCONTROL.statusTransaction; RUN;
7 ACCESSCONTROL.commitTransaction; RUN;
8 QUIT;
Resultado :
La transacción se confirma. El resultado de 'statusTransaction' antes de la confirmación mostraría los cambios pendientes, y después de la confirmación, los permisos para el grupo 'sasusers' en 'mycaslib' se habrán aplicado permanentemente.

FAQ

¿Cuál es el propósito principal de la acción `commitTransaction`?
¿Qué sucede con los objetos que estaban en estado 'checked-out' después de un `commitTransaction`?
¿Es `commitTransaction` una acción que se puede revertir?
¿Qué acciones se deben realizar antes de poder usar `commitTransaction`?

Escenarios asociados

Caso de uso
Protección de Datos Sensibles de Recursos Humanos

El departamento de Recursos Humanos ha cargado una nueva tabla de bonificaciones ejecutivas. Por regulaciones de privacidad, es crítico que estos datos no sean visibles para el ...

Caso de uso
Actualización Masiva de Políticas de Retención de Datos

Una auditoría de TI requiere actualizar los permisos de escritura en múltiples librerías departamentales (Finanzas, Ventas, Logística) simultáneamente para imponer un modo de 'S...

Caso de uso
Corrección de Error Administrativo y Re-Commit

Un administrador junior está configurando el acceso a un nuevo Data Mart. Inicia una transacción, pero se da cuenta de que aplicó los permisos al grupo equivocado. Este escenari...