Compartir a través de


Administración de usuarios en Azure Database for PostgreSQL

En este artículo se describe cómo puede crear usuarios dentro de 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 (RBAC) de Azure o revisar cómo personalizar roles.

La cuenta de administrador del servidor

Cuando creó por primera vez la instancia de servidor flexible de Azure Database for PostgreSQL, proporcionó 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 encontrar el nombre de usuario de administrador del servidor elegido en Azure Portal.

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

  • azure_pg_admin
  • azuresu
  • el usuario administrador del servidor

El usuario administrador del servidor es miembro del rol de 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

La cuenta de usuario administrador del servidor se puede usar para crear más usuarios y concederlos al rol de azure_pg_admin. Además, la cuenta de administrador del servidor se puede usar 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 a la instancia de 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 a la instancia de 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 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 a la instancia de 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 a la instancia de servidor flexible de Azure Database for PostgreSQL. Use la herramienta de cliente preferida, como pgAdmin o psql.

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

    Este 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 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