Procedimientos almacenados para conceder y revocar privilegios de RDS para Db2
Los procedimientos almacenados integrados que se describen en este tema administran usuarios, roles, grupos y autorización para bases de datos de Amazon RDS para Db2. Para ejecutar estos procedimientos, el usuario maestro debe conectarse primero a la base de datos rdsadmin.
Para conocer las tareas que utilizan estos procedimientos almacenados, consulte Concesión y revocación de privilegios y Configuración de la autenticación Kerberos.
Consulte los siguientes procedimientos almacenados integrados para obtener información sobre su sintaxis, parámetros, notas de uso y ejemplos.
Procedimientos almacenados
rdsadmin.create_role
Crea un rol.
Sintaxis
db2 "call rdsadmin.create_role( 'database_name', 'role_name')"
Parameters
Se requieren los siguientes parámetros:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. role_name-
El nombre del rol que desea crear. El tipo de datos es
varchar.
Notas de uso
Para obtener más información sobre cómo comprobar el estado de creación de un rol, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se crea un rol denominado MY_ROLE para la base de datos DB2DB.
db2 "call rdsadmin.create_role( 'DB2DB', 'MY_ROLE')"
rdsadmin.grant_role
Asigna un rol a un rol, usuario o grupo.
Sintaxis
db2 "call rdsadmin.grant_role( ?, 'database_name', 'role_name', 'grantee', 'admin_option')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetro que genera el identificador único de la tarea. Este parámetro solo acepta
?.
Se requieren los siguientes parámetros de entrada:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. role_name-
El nombre del rol que desea crear. El tipo de datos es
varchar. grantee-
El rol, el usuario o el grupo que recibirá la autorización. El tipo de datos es
varchar. Valores válidos:ROLE,USER,GROUP,PUBLIC.El formato debe ser un valor seguido del nombre. Separe los valores y los nombres con comas. Ejemplo: “”.: '
USER'. Reemplace los nombres con su propia información.user1,user2, GROUPgroup1,group2
El siguiente parámetro de entrada es opcional:
admin_option-
Especifica si el concesionario
ROLEtiene la autorizaciónDBADMpara asignar roles. El tipo de datos eschar. El valor predeterminado esN.
Notas de uso
Para obtener más información sobre cómo comprobar el estado de asignación de un rol, consulte rdsadmin.get_task_status.
Ejemplos
Ejemplo 1: asignación de un rol a un rol, usuario y grupo, y concesión de la autorización
El siguiente ejemplo asigna un rol llamado ROLE_TEST para la base de datos TESTDB al rol llamado role1, al usuario llamado user1 y al grupo llamado group1. ROLE_TEST recibe la autorización de administrador para asignar roles.
db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1', 'Y')"
Ejemplo 2: asignación de un rol a PUBLIC y no concesión de la autorización
En el siguiente ejemplo, se asigna un rol llamado ROLE_TEST para la base de datos TESTDB a PUBLIC. ROLE_TEST no recibe la autorización de administrador para asignar roles.
db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'ROLE_TEST', 'PUBLIC')"
rdsadmin.revoke_role
Revoca un rol de un rol, usuario o grupo.
Sintaxis
db2 "call rdsadmin.revoke_role( ?, 'database_name', 'role_name', 'grantee')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetro que genera el identificador único de la tarea. Este parámetro solo acepta ?
Se requieren los siguientes parámetros de entrada:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. role_name-
El nombre del rol que desea revocar. El tipo de datos es
varchar. grantee-
El rol, el usuario o el grupo que perderá la autorización. El tipo de datos es
varchar. Valores válidos:ROLE,USER,GROUP,PUBLIC.El formato debe ser un valor seguido del nombre. Separe los valores y los nombres con comas. Ejemplo: “”.: '
USER'. Reemplace los nombres con su propia información.user1,user2, GROUPgroup1,group2
Notas de uso
Para obtener más información sobre cómo comprobar el estado de revocación de un rol, consulte rdsadmin.get_task_status.
Ejemplos
Ejemplo 1: revocación de un rol, usuario y grupo
En el siguiente ejemplo, se revoca un rol llamado ROLE_TEST para la base de datos TESTDB del rol llamado role1, del usuario llamado user1 y del grupo llamado group1.
db2 "call rdsadmin.revoke_role( ?, 'TESTDB', 'ROLE_TEST', 'ROLE role1, USER user1, GROUP group1')"
Ejemplo 2: revocación del rol de PUBLIC
En el siguiente ejemplo, se revoca un rol llamado ROLE_TEST para la base de datos TESTDB de PUBLIC.
db2 "call rdsadmin.revoke_role( ?, 'TESTDB', 'ROLE_TEST', 'PUBLIC')"
rdsadmin.drop_role
Descarta un rol.
Sintaxis
db2 "call rdsadmin.drop_role( ?, 'database_name', 'role_name')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetro que genera el identificador único de la tarea. Este parámetro solo acepta ?
Se requieren los siguientes parámetros de entrada:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. role_name-
El nombre del rol que desea descartar. El tipo de datos es
varchar.
Notas de uso
Para obtener más información sobre cómo comprobar el estado de descarte de un rol, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se descarta un rol denominado ROLE_TEST para la base de datos TESTDB.
db2 "call rdsadmin.drop_role( ?, 'TESTDB', 'ROLE_TEST')"
rdsadmin.add_user
Agrega un usuario a una lista de autorizaciones.
Sintaxis
db2 "call rdsadmin.add_user( 'username', 'password', 'group_name,group_name')"
Parameters
Se requieren los siguientes parámetros:
Nombre de usuario de-
El nombre de usuario de un usuario. El tipo de datos es
varchar. contraseña-
La contraseña de un usuario. El tipo de datos es
varchar.
El siguiente parámetro es opcional:
group_name-
El nombre de un grupo al que quiera agregar al usuario. El tipo de datos es
varchar. El valor predeterminado es una cadena vacía o null.
Notas de uso
Puede agregar un usuario a uno o más grupos separando los nombres de los grupos con comas.
Puede crear un grupo al crear un usuario nuevo o al agregar un grupo a un usuario existente. No puede crear un grupo por sí mismo.
nota
El número máximo de usuarios que puede agregar llamando a rdsadmin.add_user es de 5000.
Para obtener más información sobre cómo comprobar el estado al agregar un usuario, consulte rdsadmin.get_task_status.
Ejemplos
En el ejemplo siguiente, se crea un usuario llamado jorge_souza y se asigna a los grupos denominados sales y inside_sales.
db2 "call rdsadmin.add_user( 'jorge_souza', '*******', 'sales,inside_sales')"
rdsadmin.change_password
Cambia la contraseña de un usuario
Sintaxis
db2 "call rdsadmin.change_password( 'username', 'new_password')"
Parameters
Se requieren los siguientes parámetros:
Nombre de usuario de-
El nombre de usuario de un usuario. El tipo de datos es
varchar. new_password-
Una nueva contraseña para el usuario. El tipo de datos es
varchar.
Notas de uso
Para obtener información sobre cómo comprobar el estado de un cambio de contraseña, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo se cambia la contraseña de jorge_souza.
db2 "call rdsadmin.change_password( 'jorge_souza', '*******')"
rdsadmin.list_users
Muestra los usuarios de una lista de autorización.
Sintaxis
db2 "call rdsadmin.list_users()"
Notas de uso
Para obtener más información sobre cómo comprobar el estado al mostrar los usuarios, consulte rdsadmin.get_task_status.
rdsadmin.remove_user
Elimina el usuario de la lista de autorizaciones.
Sintaxis
db2 "call rdsadmin.remove_user('username')"
Parameters
El siguiente parámetro es obligatorio:
Nombre de usuario de-
El nombre de usuario de un usuario. El tipo de datos es
varchar.
Notas de uso
Para obtener más información sobre cómo comprobar el estado de eliminación de un usuario, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se impide a jorge_souza el acceso a las bases de datos de las instancias de bases de datos de RDS para Db2.
db2 "call rdsadmin.remove_user('jorge_souza')"
rdsadmin.add_groups
Agrega grupos a un usuario.
Sintaxis
db2 "call rdsadmin.add_groups( 'username', 'group_name,group_name')"
Parameters
Se requieren los siguientes parámetros:
Nombre de usuario de-
El nombre de usuario de un usuario. El tipo de datos es
varchar. group_name-
El nombre de un grupo al que quiera agregar al usuario. El tipo de datos es
varchar. El valor predeterminado es una cadena vacía.
Notas de uso
Puede agregar uno o más grupos a un usuario separando los nombres de los grupos con comas. Para obtener más información sobre cómo comprobar el estado al agregar grupos, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se agregan los grupos direct_sales y b2b_sales al usuario jorge_souza.
db2 "call rdsadmin.add_groups( 'jorge_souza', 'direct_sales,b2b_sales')"
rdsadmin.remove_groups
Elimina grupos de un usuario.
Sintaxis
db2 "call rdsadmin.remove_groups( 'username', 'group_name,group_name')"
Parameters
Se requieren los siguientes parámetros:
Nombre de usuario de-
El nombre de usuario de un usuario. El tipo de datos es
varchar. group_name-
El nombre de un grupo del que quiera eliminar al usuario. El tipo de datos es
varchar.
Notas de uso
Puede eliminar uno o más grupos de un usuario separando los nombres de los grupos con comas.
Para obtener más información sobre cómo comprobar el estado de eliminación de grupos, consulte rdsadmin.get_task_status.
Ejemplos
En el ejemplo siguiente se quitan los grupos direct_sales y b2b_sales del usuario jorge_souza.
db2 "call rdsadmin.remove_groups( 'jorge_souza', 'direct_sales,b2b_sales')"
rdsadmin.dbadm_grant
Concede autorización DBADM, ACCESSCTRL o DATAACCESS a un rol, usuario o grupo.
Sintaxis
db2 "call rdsadmin.dbadm_grant( ?, 'database_name', 'authorization', 'grantee')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetro que genera el identificador único de la tarea. Este parámetro solo acepta
?.
Se requieren los siguientes parámetros de entrada:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. authorization-
El tipo de autorización que se va a conceder. El tipo de datos es
varchar. Valores válidos:DBADM,ACCESSCTRL,DATAACCESS.Separe los diversos tipos con comas.
grantee-
El rol, el usuario o el grupo que recibirá la autorización. El tipo de datos es
varchar. Valores válidos:ROLE,USER,GROUP.El formato debe ser un valor seguido del nombre. Separe los valores y los nombres con comas. Ejemplo: “”.: '
USER'. Reemplace los nombres con su propia información.user1,user2, GROUPgroup1,group2
Notas de uso
El rol que vaya a recibir el acceso debe existir.
Para obtener más información sobre cómo comprobar el estado de concesión de acceso de administrador de base de datos, consulte rdsadmin.get_task_status.
Ejemplos
Ejemplo 1: concesión de acceso de administrador de bases de datos al rol
El siguiente ejemplo otorga acceso de administrador de base de datos a la base de datos denominada TESTDB para el rol ROLE_DBA.
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"
Ejemplo 2: concesión de acceso de administrador de bases de datos al usuario y al grupo
El siguiente ejemplo otorga acceso de administrador de base de datos a la base de datos denominada TESTDB para user1 y group1.
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"
Ejemplo 3: concesión de acceso de administrador de bases de datos a varios usuarios y grupos
El siguiente ejemplo otorga acceso de administrador de base de datos a la base de datos denominada TESTDB para user1, user2, group1 y group2.
db2 "call rdsadmin.dbadm_grant( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"
rdsadmin.dbadm_revoke
Revoca la autorización DBADM, ACCESSCTRL o DATAACCESS de un rol, usuario o grupo.
Sintaxis
db2 "call rdsadmin.dbadm_revoke( ?, 'database_name', 'authorization', 'grantee')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
El identificador único de la tarea. Este parámetro solo acepta
?.
Se requieren los siguientes parámetros de entrada:
database_name-
Nombre de la base de datos en la que se va a ejecutar el comando. El tipo de datos es
varchar. authorization-
El tipo de autorización que se va a revocar. El tipo de datos es
varchar. Valores válidos:DBADM,ACCESSCTRL,DATAACCESS.Separe los diversos tipos con comas.
grantee-
El rol, el usuario o el grupo al que se va a revocar la autorización. El tipo de datos es
varchar. Valores válidos:ROLE,USER,GROUP.El formato debe ser un valor seguido del nombre. Separe los valores y los nombres con comas. Ejemplo: “”.: '
USER'. Reemplace los nombres con su propia información.user1,user2, GROUPgroup1,group2
Notas de uso
Para obtener más información sobre cómo comprobar el estado de revocación de acceso de administrador de base de datos, consulte rdsadmin.get_task_status.
Ejemplos
Ejemplo 1: revocación del acceso de administrador de la base de datos de un rol
El siguiente ejemplo revoca el acceso de administrador de base de datos a la base de datos denominada TESTDB para el rol ROLE_DBA.
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'ROLE ROLE_DBA')"
Ejemplo 2: revocación del acceso de administrador a la base de datos de un usuario y un grupo
El siguiente ejemplo revoca el acceso de administrador de base de datos a la base de datos denominada TESTDB para user1 y group1.
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, GROUP group1')"
Ejemplo 3: revocación del acceso de administrador de la base de datos a varios usuarios y grupos
El siguiente ejemplo revoca el acceso de administrador de base de datos a la base de datos denominada TESTDB para user1, user2, group1 y group2.
db2 "call rdsadmin.dbadm_revoke( ?, 'TESTDB', 'DBADM', 'USER user1, user2, GROUP group1, group2')"
rdsadmin.set_sid_group_mapping
Crea una asignación entre un identificador de seguridad (SID) y el grupo de Active Directory correspondiente.
Sintaxis
db2 "call rdsadmin.set_sid_group_mapping( ?, 'SID', 'group_name')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetros que genera un mensaje de error. Este parámetro solo acepta
?.
Se requieren los siguientes parámetros de entrada:
SID-
Identificador de seguridad (SID). El tipo de datos es
varchar. group_name-
El nombre del grupo de Active Directory que se va a asignar al SID. El tipo de datos es
varchar.
Notas de uso
Utilice este procedimiento almacenado para habilitar la autenticación Kerberos con grupos de Active Directory. Si el SID o group_name ya existe en la asignación, se produce un error en este procedimiento almacenado.
Para obtener información acerca de cómo encontrar el SID para un grupo, consulte Paso 8: recuperar el SID del grupo de Active Directory en PowerShell.
Para obtener información sobre cómo comprobar el estado de creación de una asignación, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se asigna un SID a un grupo denominado my_group.
db2 "call rdsadmin.set_sid_group_mapping( ?, 'S-1-5-21-9146495592-531070549-834388463-513', 'my_group')"
rdsadmin.list_sid_group_mapping
Muestra todos los identificadores de seguridad (SID) y las asignaciones de grupos de Active Directory configuradas en la instancia de base de datos.
Sintaxis
db2 "call rdsadmin.list_sid_group_mapping()"
Notas de uso
Para obtener más información sobre cómo comprobar el estado al mostrar las asignaciones, consulte rdsadmin.get_task_status.
rdsadmin.remove_sid_group_mapping
Elimina un identificador de seguridad (SID) y su correspondiente asignación de grupo de Active Directory de una instancia de base de datos.
Sintaxis
db2 "call rdsadmin.remove_sid_group_mapping( ?, 'SID')"
Parameters
El siguiente parámetro de salida es obligatorio:
- ?
-
Un marcador de parámetros que genera un mensaje de error. Este parámetro solo acepta
?.
El siguiente parámetro de entrada es obligatorio:
SID-
Identificador de seguridad (SID). El tipo de datos es
varchar.
Notas de uso
Para obtener información acerca de cómo encontrar el SID para un grupo, consulte Paso 8: recuperar el SID del grupo de Active Directory en PowerShell.
Para obtener información sobre cómo comprobar el estado de eliminación de asignaciones, consulte rdsadmin.get_task_status.
Ejemplos
En el siguiente ejemplo, se elimina una asignación de SID del grupo al que se ha asignado.
db2 "call rdsadmin.remove_sid_group_mapping( ?, 'S-1-5-21-9146495592-531070549-834388463-513')"