

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crear usuarios y roles de aplicaciones en Aurora compatible con PostgreSQL
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible"></a>

*Abhishek Verma, Amazon Web Services*

## Resumen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-summary"></a>

Al migrar a la edición compatible con PostgreSQL de Amazon Aurora, los usuarios y roles de la base de datos que existen en la base de datos de origen deben crearse en la base de datos de Aurora compatible con PostgreSQL. Puede crear los usuarios y los roles en Aurora compatibles con PostgreSQL mediante dos enfoques diferentes:
+ Utilice usuarios y roles similares en la base de datos de destino y en la base de datos de origen. En este enfoque, los lenguajes de definición de datos (DDLs) se extraen para los usuarios y las funciones de la base de datos de origen. A continuación, se transforman y se aplican a la base de datos Aurora compatible con PostgreSQL de destino. Por ejemplo, la entrada del blog [Usar SQL para asignar usuarios, roles y concesiones de Oracle a PostgreSQL](https://aws.amazon.com/blogs/database/use-sql-to-map-users-roles-and-grants-from-oracle-to-postgresql) trata sobre el uso de la extracción de un motor de base de datos de origen de Oracle.
+ Utilice usuarios y roles estandarizados que se utilizan habitualmente durante el desarrollo, la administración y para realizar otras operaciones relacionadas en la base de datos. Esto incluye las operaciones de solo lectura, lectura/escritura, desarrollo, administración e implementación realizadas por los respectivos usuarios.

Este patrón contiene las concesiones necesarias para la creación de usuarios y roles en Aurora, compatible con PostgreSQL, necesarias para el enfoque estandarizado de usuarios y roles. Los pasos de creación de usuarios y roles están alineados con la política de seguridad de conceder el privilegio mínimo a los usuarios de la base de datos. La siguiente tabla muestra los usuarios, sus funciones correspondientes y sus detalles en la base de datos.


| 
| 
| Users | Roles | Finalidad | 
| --- |--- |--- |
| `APP_read` | `APP_RO` | Se utiliza para el acceso de solo lectura al esquema `APP` | 
| `APP_WRITE` | `APP_RW` | Se utiliza para las operaciones de escritura y lectura del esquema `APP` | 
| `APP_dev_user` | `APP_DEV` | Se utiliza con fines de desarrollo en el esquema `APP_DEV`, con acceso de solo lectura al esquema `APP` | 
| `Admin_User` | `rds_superuser` | Se utiliza para realizar operaciones de administrador en la base de datos | 
| `APP` | `APP_DEP` | Se utiliza para crear los objetos del esquema `APP` y para la implementación de objetos en el esquema `APP` | 

## Requisitos previos y limitaciones
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-prereqs"></a>

**Requisitos previos **
+ Una cuenta de Amazon Web Services (AWS) activa
+ Una base de datos PostgreSQL, una base de datos Amazon Aurora de edición compatible con PostgreSQL o una base de datos Amazon Relational Database Service (Amazon RDS) para PostgreSQL

**Versiones de producto**
+ Todas las versiones de PostgreSQL

## Arquitectura
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-architecture"></a>

**Pila de tecnología de origen**
+ Cualquier base de datos

**Pila de tecnología de destino**
+ Amazon Aurora compatible con PostgreSQL

**Arquitectura de destino**

El siguiente diagrama muestra los roles de usuario y la arquitectura del esquema en la base de datos Aurora compatible con PostgreSQL.

![\[Funciones de usuario y arquitectura de esquemas para la base de datos Aurora compatible con PostgreSQL.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/80105a81-e3d1-4258-b3c1-77f3a5e78592/images/b95cb9bc-8bf7-47d1-92e7-66cfb37d7ce7.png)


                                                                                                                                    

**Automatizar y escalar**

Este patrón contiene los usuarios, los roles y el script de creación del esquema, que puede ejecutar varias veces sin que ello afecte a los usuarios actuales de la base de datos de origen o destino.

## Tools (Herramientas)
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-tools"></a>

**Servicios de AWS**
+ La [edición de Amazon Aurora compatible con PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) es un motor de base de datos relacional compatible con ACID, completamente administrado que le permite configurar, utilizar y escalar implementaciones de PostgreSQL.

**Otros servicios**
+ [psql](https://www.postgresql.org/docs/current/app-psql.html) es una herramienta frontend basada en un terminal que se instala con todas las instalaciones de PostgreSQL Database. Cuenta con una interfaz de la línea de comandos para ejecutar comandos de SQL, PL-PGSQL y del sistema operativo.
+ [pgAdmin](https://www.pgadmin.org/) es una herramienta de gestión de código abierto para PostgreSQL. Proporciona una interfaz gráfica que permite crear, mantener y utilizar objetos de bases de datos.

## Epics
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-epics"></a>

### Crear los usuarios y los roles
<a name="create-the-users-and-roles"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el usuario de implementación. | El usuario de implementación `APP` se utilizará para crear y modificar los objetos de la base de datos durante las implementaciones. Utilice los siguientes scripts para crear el rol de usuario de implementación `APP_DEP` en el esquema `APP`. Valide los derechos de acceso para asegurarse de que este usuario solo tiene el privilegio de crear objetos en el esquema `APP` requerido.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | Administrador de base de datos | 
| Cree el usuario de solo lectura. | El usuario de solo lectura `APP_read` se utilizará para realizar la operación de solo lectura en el esquema `APP`. Utilice los siguientes scripts para crear el usuario de solo lectura. Valide los derechos de acceso para asegurarse de que este usuario tiene privilegios para leer únicamente los objetos del esquema `APP` y para conceder automáticamente el acceso de lectura a cualquier objeto nuevo creado en el esquema `APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | Administrador de base de datos | 
| Cree el read/write usuario. | El read/write usuario se `APP_WRITE` utilizará para realizar operaciones de lectura y escritura en el esquema`APP`. Utilice los siguientes scripts para crear el read/write usuario y asignarle el `APP_RW` rol. Valide los derechos de acceso para asegurarse de que este usuario solo tiene privilegios de lectura y escritura en los objetos del esquema `APP` y para conceder automáticamente el acceso de lectura y escritura a cualquier objeto nuevo creado en el esquema `APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) |  | 
| Cree el usuario administrador. | El usuario administrador `Admin_User` se utilizará para realizar operaciones de administración en la base de datos. Algunos ejemplos de estas operaciones son `CREATE ROLE` y `CREATE DATABASE`. `Admin_User` utiliza la función integrada `rds_superuser` para realizar operaciones de administración en la base de datos. Utilice los siguientes scripts para crear y probar el privilegio del usuario administrador `Admin_User` en la base de datos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | Administrador de base de datos | 
| Cree el usuario de desarrollo. | El usuario de desarrollo `APP_dev_user` tendrá derechos para crear los objetos en su esquema local `APP_DEV` y acceso de lectura en el esquema `APP`. Utilice los siguientes scripts para crear y probar los privilegios del usuario `APP_dev_user` en la base de datos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | Administrador de base de datos | 

## Recursos relacionados
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-resources"></a>

**Documentación de PostgreSQL**
+ [CREAR ROL](https://www.postgresql.org/docs/9.1/sql-createrole.html)
+ [CREAR USUARIO](https://www.postgresql.org/docs/8.0/sql-createuser.html)
+ [Roles predefinidos](https://www.postgresql.org/docs/14/predefined-roles.html)

 

## Información adicional
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-additional"></a>

**Mejora de PostgreSQL 14**

PostgreSQL 14 proporciona un conjunto de roles predefinidos que dan acceso a determinadas capacidades e información privilegiadas que se necesitan con frecuencia. Los administradores (incluidos roles con privilegios `CREATE ROLE`) pueden conceder estos roles u otros roles de su entorno a los usuarios, proporcionándoles acceso a la información y las capacidades especificadas.

Los administradores pueden conceder a los usuarios el acceso a estos roles mediante el comando `GRANT`. Por ejemplo, para conceder el rol `pg_signal_backend` al `Admin_User`, puede ejecutar el siguiente comando.

```
GRANT pg_signal_backend TO Admin_User;
```

El objetivo del rol `pg_signal_backend` es permitir a los administradores habilitar roles de confianza que no son de superusuario para enviar señales a otros backends. Para obtener más información, consulte [Mejora de PostgreSQL 14](https://www.postgresql.org/docs/14/predefined-roles.html).

**Afinar el acceso**

En algunos casos, puede ser necesario proporcionar un acceso más detallado a los usuarios (por ejemplo, acceso basado en tablas o en columnas). En esos casos, se pueden crear roles adicionales para conceder esos privilegios a los usuarios. Para obtener información, consulte [Concesiones de PostgreSQL](https://www.postgresql.org/docs/8.4/sql-grant.html).