Creación de usuarios en un servidor flexible de Azure Database for PostgreSQL

SE APLICA A: Azure Database for PostgreSQL: servidor flexible

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

Supongamos que quiere aprender a crear y administrar usuarios de suscripción de Azure y sus privilegios. En ese caso, puede visitar el artículo Control de acceso basado en rol de Azure (RBAC de Azure) o revisar cómo personalizar roles.

La cuenta de administrador del servidor

La primera vez que se creó la instancia de servidor flexible de Azure Database for PostgreSQL, se proporcionó un nombre de usuario y una contraseña de administrador del servidor. Para más información, puede seguir la Guía de inicio rápido para consultar un método paso a paso. Como el nombre de usuario administrador del servidor es un nombre personalizado, puede buscar el nombre de usuario administrador del servidor en Azure Portal.

La instancia de servidor flexible de Azure Database for PostgreSQL se creó con los tres roles predeterminados definidos. Puede ver estos roles con la ejecución del comando: SELECT rolname FROM pg_roles;.

  • azure_pg_admin
  • azure_superuser
  • usuario administrador del servidor

El usuario administrador del servidor es un miembro del rol azure_pg_admin. No obstante, la cuenta de administrador del servidor no forma parte del rol azure_superuser. Como 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 objetos de base de datos, como se describe en la documentación de productos de PostgreSQL. En el servidor flexible de Azure Database for PostgreSQL, se le conceden estos privilegios al usuario administrador del servidor:

  • Inicio de sesión, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE.

La cuenta de usuario administrador del servidor puede usarse para crear usuarios adicionales y conceder a tales usuarios el rol azure_pg_admin. Además, la cuenta de administrador del servidor puede usarse para crear usuarios con menos privilegios y roles que tengan acceso a esquemas y base de datos individuales.

Creación de usuarios administradores en un servidor flexible de 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 a la instancia del servidor flexible de Azure Database for PostgreSQL. Puede encontrar fácilmente el nombre del servidor y la 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 a la instancia del servidor flexible de Azure Database for PostgreSQL. Use la herramienta de cliente preferida, como pgAdmin o psql. Si no está seguro de cómo conectarse, consulte la guía de inicio rápido.

  3. Modifique 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 de marcador de posición con la contraseña segura anterior.

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

Creación de usuarios de base de datos en un servidor flexible de 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 a la instancia del servidor flexible de Azure Database for PostgreSQL. Puede encontrar fácilmente el nombre del servidor y la 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 a la instancia del servidor flexible de Azure Database for PostgreSQL. Use la herramienta de cliente preferida, como pgAdmin o psql.

  3. Modifique y ejecute el siguiente código SQL. Reemplace el valor de marcador de posición <db_user> por su nuevo nombre de usuario deseado y el valor de marcador de posición <newdb> por su propio nombre de base de datos. Reemplace la contraseña de marcador de posición con su propia contraseña segura.

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

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. Con el uso de una cuenta de administrador, puede que deba conceder privilegios adicionales para proteger los objetos de la base de datos. Consulte la documentación de PostgreSQL para obtener información adicional sobre los privilegios y roles de base de datos. Por ejemplo:

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

    Si un usuario crea una tabla "rol", 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 mediante el nuevo nombre de usuario y contraseña, sin olvidarse de especificar la base de datos designada. En este ejemplo se muestra la línea de comandos de psql. Con este comando, se le pedirá la contraseña del 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
    

Pasos siguientes

Abra el firewall para las direcciones IP de las máquinas de los nuevos usuarios para permitirles conectarse: