Administrar usuarios de Azure Database for PostgreSQL flexible server

En este artículo se describe cómo crear usuarios dentro de un servidor flexible Azure Database for PostgreSQL.

Para obtener información sobre cómo crear y administrar los usuarios de una suscripción de Azure y sus privilegios, consulte el artículo sobre el control de acceso basado en roles de Azure (Azure RBAC) o revise cómo personalizar los roles.

La cuenta de administrador del servidor

Cuando cree por primera vez el Azure Database for PostgreSQL servidor flexible, proporcione un nombre de usuario y una contraseña de administrador del servidor. Para más información, consulte Crear una base de datos de Azure para PostgreSQL para ver el enfoque paso a paso. Dado que el nombre de usuario administrador del servidor es un nombre personalizado, puede buscar el nombre de usuario de administrador del servidor elegido en el portal de Azure.

El Azure Database for PostgreSQL servidor flexible se crea con tres roles predeterminados definidos. Para ver estos roles, ejecute el comando : SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • tu usuario administrador del servidor

El usuario administrador del servidor es un miembro del rol azure_pg_admin. Sin embargo, la cuenta de administrador del servidor no forma parte del rol azuresu. Dado que este servicio es un servicio PaaS administrado, solo Microsoft forma parte del rol de superusuario.

El motor de PostgreSQL usa privilegios para controlar el acceso a los objetos de base de datos, como se describe en la documentación del producto postgreSQL. En Azure Database for PostgreSQL, al usuario administrador del servidor se le conceden estos privilegios:

  • Iniciar sesión, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

Use la cuenta de usuario administrador del servidor para crear más usuarios y conceder a esos usuarios el rol de azure_pg_admin. Además, use la cuenta de administrador del servidor para crear usuarios y roles con menos privilegios que tengan acceso a bases de datos y esquemas individuales.

Creación de más usuarios administradores en Azure Database for PostgreSQL

  1. Obtenga la información de conexión y el nombre de usuario administrador. Necesita el nombre completo del servidor y las credenciales de inicio de sesión de administrador para conectarse al servidor flexible de Azure Database for PostgreSQL. Puede encontrar fácilmente el nombre del servidor e información de inicio de sesión en la página Información general del servidor o en la página Propiedades de Azure Portal.

  2. Use la cuenta de administrador y la contraseña para conectarse al servidor flexible Azure Database for PostgreSQL. Use la herramienta de cliente preferida, como pgAdmin o psql. Si no está seguro de cómo conectarse, consulte Crear una base de datos de Azure para PostgreSQL.

  3. Edite y ejecute el siguiente código SQL. Reemplace el nuevo nombre de usuario por el valor de marcador de posición <new_user>y reemplace la contraseña del marcador de posición por su propia contraseña segura.

    CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>';
    
    GRANT azure_pg_admin TO <new_user>;
    

Creación de usuarios de base de datos en Azure Database for PostgreSQL

  1. Obtenga la información de conexión y el nombre de usuario administrador. Necesita el nombre completo del servidor y las credenciales de inicio de sesión de administrador para conectarse al servidor flexible de Azure Database for PostgreSQL. Puede encontrar fácilmente el nombre del servidor e información de inicio de sesión en la página Información general del servidor o en la página Propiedades de Azure Portal.

  2. Use la cuenta de administrador y la contraseña para conectarse al servidor flexible Azure Database for PostgreSQL. Use la herramienta de cliente preferida, como pgAdmin o psql.

  3. Edite y ejecute el siguiente código SQL. Sustituya el valor del marcador de posición <db_user> por el nuevo nombre de usuario que desee y el valor del marcador de posición <newdb> por el nombre de su propia base de datos. Reemplace la contraseña del marcador de posición por su propia contraseña segura.

    Este código SQL crea una nueva base de datos y, a continuación, crea un nuevo usuario en el servidor flexible Azure Database for PostgreSQL y concede privilegios de conexión a la nueva base de datos para ese usuario.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. Con una cuenta de administrador, es posible que tenga que conceder otros privilegios para proteger los objetos de la base de datos. Consulte la documentación de PostgreSQL para más información sobre los roles y privilegios de base de datos. Por ejemplo:

    GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;
    

    Si un usuario crea una tabla "role", la tabla pertenece a ese usuario. Si otro usuario necesita acceso a la tabla, debe conceder privilegios al otro usuario en el nivel de tabla.

    Por ejemplo:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Inicie sesión en el servidor y especifique la base de datos designada con el nuevo nombre de usuario y contraseña. En este ejemplo se muestra la línea de comandos de psql. Con este comando, se le pedirá la contraseña para el nombre de usuario. Reemplace su propio nombre de servidor, nombre de base de datos y nombre de usuario.

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=db_user --dbname=newdb