¿Por qué no puedo crear un objeto en la base de datos postgres como usuario común?
Síntoma
- Creación de un esquema como usuario común
Comando: CREATE SCHEMA my_schema;
Error: ERROR: permiso denegado para postgres de base de datos
- Creación de una tabla como usuario común
Comando: CREATE TABLE my_table(id int PRIMARY KEY,name VARCHAR(30));
ERROR: permiso denegado para el esquema público
Solución
Un usuario común no puede crear objetos en la base de datos de postgres, pero un usuario root sí.
Cambie al usuario root y asegúrese de que el kernel de su base de datos permita la escalada de privilegios de root. Para obtener más información, consulte Privilegios del usuario root.
Privilegios del usuario root
RDS for PostgreSQL proporciona permisos para el usuario root. Para crear objetos en una base de datos RDS for PostgreSQL sin riesgos de operación, escalar su cuenta a privilegios de root cuando sea necesario.
La siguiente tabla describe la escalada de privilegios de root en diferentes versiones.
Versión |
Si se deben escalar los privilegios |
Versión inicial para la escalada de privilegios |
---|---|---|
Pgcore9 |
No |
N/A |
Pgcore10 |
No |
N/A |
Pgcore11 |
Sí |
11.11 |
Pgcore12 |
Sí |
12.6 |
Pgcore13 |
Sí |
13.2 |
Pgcore14 |
Sí |
14.4 |
Ascienda a privilegios de root cuando necesite:
- Crear un activador de evento.
- Crear una envoltura.
- Crear una publicación de replicación lógica.
- Crear una suscripción de replicación lógica.
- Consultar y mantener los orígenes de replicación.
- Crear un usuario de replicación.
- Crear una plantilla de índice de texto completo y un analizador.
- Ejecutar el comando vacuum en una tabla del sistema.
- Ejecutar el comando analyze en una tabla del sistema.
- Crear un complemento.
- Otorgar un permiso de objeto a un usuario.