Realización de tareas comunes del sistema para instancias de base de datos de Amazon RDS para Db2
Puede realizar ciertas tareas comunes de administrador de bases de datos relacionadas con el sistema en las instancias de base de datos de Amazon RDS que ejecuten Db2. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de bases de datos y restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados.
Temas
Creación de un punto de conexión de base de datos personalizado
Al migrar a Amazon RDS para Db2, puede utilizar direcciones URL de punto de conexión de base de datos personalizadas para minimizar los cambios en la aplicación. Por ejemplo, si utiliza db2.example.com
como registro DNS actual, puede añadirlo a Amazon Route 53. En Route 53, puede usar zonas alojadas privadas para asignar el punto de conexión de su base de datos de DNS actual a un punto de conexión de base de datos de RDS para Db2. Para añadir un registro A
o CNAME
personalizado para un punto de conexión de base de datos de Amazon RDS, consulte Registro y administración de dominios mediante Amazon Route 53 en la Guía para desarrolladores de Amazon Route 53.
nota
Si no puede transferir su dominio a Route 53, puede usar su proveedor de DNS para crear un registro CNAME
para la URL del punto de conexión de la base de datos de RDS para Db2. Consulte la documentación de su proveedor de DNS.
Concesión y revocación de privilegios
Los usuarios obtienen acceso a las bases de datos al pertenecer a grupos asociados a las bases de datos.
Utilice los siguientes procedimientos para conceder y revocar privilegios para controlar el acceso a la base de datos.
Estos procedimientos utilizan IBM Db2 CLP en un equipo local para conectarse a una instancia de base de datos de RDS para Db2. Asegúrese de catalogar el nodo TCP/IP y la base de datos para conectarse a la instancia de base de datos de RDS para Db2 que se ejecuta en su equipo local. Para obtener más información, consulte Conexión a la instancia de base de datos de Amazon RDS para Db2 con IBM Db2 CLP.
Temas
- Concesión a un usuario de acceso a su base de datos
- Cambio de la contraseña de un usuario
- Agregar grupos a un usuario
- Eliminación de grupos de un usuario
- Eliminación de un usuario
- Mostrar usuarios
- Creación de un rol
- Concesión de un rol
- Revocación de un rol
- Concesión de autorización a la base de datos
- Revocación de la autorización de una base de datos
Concesión a un usuario de acceso a su base de datos
Para conceder a un usuario acceso a su base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
El resultado de este comando debería ser similar al siguiente ejemplo:
Database Connection Information Database server = DB2/LINUXX8664 11.5.8.0 SQL authorization ID = ADMIN Local database alias = RDSADMIN
-
Agregue un usuario a su lista de autorización llamando a
rdsadmin.add_user
. Para obtener más información, consulte rdsadmin.add_user.db2 "call rdsadmin.add_user( '
username
', 'password
', 'group_name
,group_name
')" -
(Opcional) Agregue grupos adicionales al usuario llamando a
rdsadmin.add_groups
. Para obtener más información, consulte rdsadmin.add_groups.db2 "call rdsadmin.add_groups( '
username
', 'group_name
,group_name
')" -
Confirme las autoridades que están disponibles para el usuario. En el siguiente ejemplo, sustituya
rds_database_alias
,master_user
ymaster_password
por su propia información. Además, sustituyausername
por el nombre de usuario del usuario.db2 terminate db2 connect to
rds_database_alias
usermaster_user
usingmaster_password
db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username
', 'U') ) AS T ORDER BY AUTHORITY"El resultado de este comando debería ser similar al siguiente ejemplo:
AUTHORITY D_USER D_GROUP D_PUBLIC -------------------- ------ ------- -------- ACCESSCTRL N N N BINDADD N N N CONNECT N N N CREATETAB N N N CREATE_EXTERNAL_ROUT N N N CREATE_NOT_FENCED_RO N N N CREATE_SECURE_OBJECT N N N DATAACCESS N N N DBADM N N N EXPLAIN N N N IMPLICIT_SCHEMA N N N LOAD N N N QUIESCE_CONNECT N N N SECADM N N N SQLADM N N N SYSADM * N * SYSCTRL * N * SYSMAINT * N * SYSMON * N * WLMADM N N N
-
Otorgue los roles
ROLE_NULLID_PACKAGES
,ROLE_TABLESPACES
yROLE_PROCEDURES
de RDS para Db2 al grupo al que agregó el usuario. Para obtener más información, consulte Roles predeterminados de Amazon RDS para Db2.nota
Creamos instancias de base de datos RDS para Db2 en modo
RESTRICTIVE
. Por lo tanto, los rolesROLE_NULLID_PACKAGES
,ROLE_TABLESPACES
yROLE_PROCEDURES
de RDS para Db2 otorgan privilegios de ejecución en paquetesNULLID
para IBM Db2 CLP y Dynamic SQL. Estas funciones también otorgan privilegios de usuario en los espacios de tabla.-
Conexión a su base de datos Db2. En el siguiente ejemplo, sustituya
database_name
,master_user
ymaster_password
por su propia información.db2 connect to
database_name
usermaster_user
usingmaster_password
-
Otorgue el rol
ROLE_NULLED_PACKAGES
a un grupo. En el siguiente ejemplo, reemplacegroup_name
por el nombre del grupo al que quiera agregar el rol.db2 "grant role ROLE_NULLID_PACKAGES to group
group_name
" -
Otorgue el rol
ROLE_TABLESPACES
al mismo grupo. En el siguiente ejemplo, reemplacegroup_name
por el nombre del grupo al que quiera agregar el rol.db2 "grant role ROLE_TABLESPACES to group
group_name
" -
Otorgue el rol
ROLE_PROCEDURES
al mismo grupo. En el siguiente ejemplo, reemplacegroup_name
por el nombre del grupo al que quiera agregar el rol.db2 "grant role ROLE_PROCEDURES to group
group_name
"
-
-
Otorgue las autoridades
connect
,bindadd
,createtab
yIMPLICIT_SCHEMA
al grupo al que agregó el usuario. En el siguiente ejemplo, reemplacegroup_name
por el nombre del segundo grupo al que haya agregado el usuario.db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public" db2 "grant connect, bindadd, createtab, implicit_schema on database to group
group_name
" -
Repita los pasos 4 al 6 para cada grupo adicional al que haya agregado el usuario.
-
Pruebe el acceso del usuario conectándose como usuario, creando una tabla, insertando valores en la tabla y devolviendo los datos de la tabla. En el siguiente ejemplo, sustituya
rds_database_alias
,username
ypassword
por el nombre de la base de datos y el nombre de usuario y la contraseña del usuario.db2 connect to
rds_database_alias
userusername
usingpassword
db2 "create table t1(c1 int not null)" db2 "insert into t1 values (1),(2),(3),(4)" db2 "select * from t1"
Cambio de la contraseña de un usuario
Para cambiar la contraseña de un usuario
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Cambie la contraseña llamando a
rdsadmin.change_password
. Para obtener más información, consulte rdsadmin.change_password.db2 "call rdsadmin.change_password( '
username
', 'new_password
')"
Agregar grupos a un usuario
Para agregar grupos a un usuario
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Agregue grupos a un usuario mediante una llamada a
rdsadmin.add_groups
. Para obtener más información, consulte rdsadmin.add_groups.db2 "call rdsadmin.add_groups( '
username
', 'group_name
,group_name
')"
Eliminación de grupos de un usuario
Para eliminar grupos de un usuario
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Elimine grupos llamando a
rdsadmin.remove_groups
. Para obtener más información, consulte rdsadmin.remove_groups.db2 "call rdsadmin.remove_groups( '
username
', 'group_name
,group_name
')"
Eliminación de un usuario
Para eliminar un usuario de la lista de autorizaciones
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Elimine un usuario de la lista de autorización llamando a
rdsadmin.remove_user
. Para obtener más información, consulte rdsadmin.remove_user.db2 "call rdsadmin.remove_user('
username
')"
Mostrar usuarios
Para mostrar los usuarios en una lista de autorización, llame al procedimiento almacenado rdsadmin.list_users
. Para obtener más información, consulte rdsadmin.list_users.
db2 "call rdsadmin.list_users()"
Creación de un rol
Puede utilizar el procedimiento almacenado rdsadmin.create_role para crear un rol.
Para crear un rol
-
Conéctese a la base de datos
rdsadmin
. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Configure Db2 para generar contenido.
db2 set serveroutput on
-
Crear un rol. Para obtener más información, consulte rdsadmin.create_role.
db2 "call rdsadmin.create_role( '
database_name
', 'role_name
')" -
Configure Db2 para que no genere contenido.
db2 set serveroutput off
Concesión de un rol
Puede usar el procedimiento almacenado rdsadmin.grant_role para asignar un rol a un rol, usuario o grupo.
Asignación de un rol
-
Conéctese a la base de datos
rdsadmin
. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Configure Db2 para generar contenido.
db2 set serveroutput on
-
Asigne un rol. Para obtener más información, consulte rdsadmin.grant_role.
db2 "call rdsadmin.grant_role( '
database_name
', 'role_name
', 'grantee
', 'admin_option
')" -
Configure Db2 para que no genere contenido.
db2 set serveroutput off
Revocación de un rol
Puede usar el procedimiento almacenado rdsadmin.revoke_role para revocar un rol a un rol, usuario o grupo.
Revocación de un rol
-
Conéctese a la base de datos
rdsadmin
. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Revoque un rol. Para obtener más información, consulte rdsadmin.revoke_role.
db2 "call rdsadmin.revoke_role( ?, '
database_name
', 'role_name
', 'grantee
')"
Concesión de autorización a la base de datos
El usuario maestro, que tiene la autorización DBADM
, puede conceder autorización DBADM
, ACCESSCTRL
o DATAACCESS
a un rol, usuario o grupo.
Para conceder autorización a la base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Conceda acceso a un usuario llamando a
rdsadmin.dbadm_grant
. Para obtener más información, consulte rdsadmin.dbadm_grant.db2 "call rdsadmin.dbadm_grant( ?, '
database_name
, 'authorization
', 'grantee
')"
Ejemplo de caso de uso
El siguiente procedimiento le mostrará cómo crear un rol, conceder la autorización DBADM
al rol, asignar el rol a un usuario y conceder el rol a un grupo.
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Cree un rol llamado
PROD_ROLE
para una base de datos llamadaTESTDB
. Para obtener más información, consulte rdsadmin.create_role.db2 "call rdsadmin.create_role( 'TESTDB', 'PROD_ROLE')"
-
Asigne el rol a un usuario llamado
PROD_USER
. ElPROD_USER
recibe la autorización de administrador para asignar roles. Para obtener más información, consulte rdsadmin.grant_role.db2 "call rdsadmin.grant_role( ?, 'TESTDB', 'PROD_ROLE', 'USER PROD_USER', 'Y')"
-
(Opcional) Proporcione autorizaciones o privilegios adicionales. En el siguiente ejemplo, se concede la autorización
DBADM
a un rol llamadoPROD_ROLE
para una base de datos llamadaFUNDPROD
. Para obtener más información, consulte rdsadmin.dbadm_grant.db2 "call rdsadmin.dbadm_grant( ?, 'FUNDPROD', 'DBADM', 'ROLE PROD_ROLE')"
-
Finalice la sesión.
db2 terminate
-
Conéctese a la base de datos
TESTDB
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to TESTDB user
master_username
usingmaster_password
-
Agregue más autorizaciones al rol.
db2 "grant connect, implicit_schema on database to role PROD_ROLE"
-
Otorgue el rol
PROD_ROLE
a un grupo.db2 "grant role PROD_ROLE to group PRODGRP"
Los usuarios que pertenecen al grupo PRODGRP
ahora pueden realizar acciones como conectarse a la base de datos de TESTDB
, crear tablas o crear esquemas.
Revocación de la autorización de una base de datos
El usuario maestro, que tiene la autorización DBADM
, puede revocar la autorización DBADM
, ACCESSCTRL
o DATAACCESS
a un rol, usuario o grupo.
Para revocar una autorización de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Revoque el acceso de los usuarios llamando a
rdsadmin.dbadm_revoke
. Para obtener más información, consulte rdsadmin.dbadm_revoke.db2 "call rdsadmin.dbadm_revoke( ?, '
database_name
, 'authorization
', 'grantee
')"
Asociación a la instancia de base de datos RDS para Db2 remota
Para asociar a la instancia de base de datos RDS para Db2 remota
-
Ejecute una sesión IBM Db2 CLP en el cliente. Para obtener información sobre la catalogación de la instancia de base de datos y la base de datos de RDS para Db2, consulte Conexión a la instancia de base de datos de Amazon RDS para Db2 con IBM Db2 CLP. Tome nota del nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2.
-
Asocie la instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituya
node_name
,master_username
ymaster_password
por el nombre del nodo TCPIP que haya catalogado y el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2.db2 attach to
node_name
usermaster_username
usingmaster_password
Tras la asociación a la instancia de base de datos remota de RDS para Db2, puede ejecutar los siguientes comandos y otros comandos get snapshot
. Para obtener más información, consulte Comando GET
SNAPSHOT
db2 list applications db2 get snapshot for all databases db2 get snapshot for database manager db2 get snapshot for all applications