Поделиться через


Управление пользователями в Базе данных Azure для PostgreSQL

В этой статье описывается, как создавать пользователей в гибком экземпляре сервера Базы данных Azure для PostgreSQL.

Предположим, вы хотите узнать, как создавать пользователей подписки Azure и их привилегии и управлять ими. В этом случае вы можете посетить статью управления доступом на основе ролей Azure (Azure RBAC) или ознакомиться с настройкой ролей.

Учетная запись администратора сервера

При создании гибкого экземпляра базы данных Azure для PostgreSQL вы предоставили имя пользователя и пароль администратора сервера. Дополнительные сведения см. в статье "Создание базы данных Azure для PostgreSQL" , чтобы просмотреть пошаговый подход. Так как имя пользователя администратора сервера — это настраиваемое имя, вы можете найти выбранное имя пользователя администратора сервера на портале Azure.

Гибкий экземпляр сервера Базы данных Azure для PostgreSQL создается с тремя ролями по умолчанию. Эти роли можно просмотреть, выполнив команду: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • пользователь администратора сервера

Пользователь администратора сервера является членом роли azure_pg_admin. Однако учетная запись администратора сервера не входит в роль Azuresu. Так как эта служба является управляемой службой PaaS, только корпорация Майкрософт является частью роли суперпользовающего пользователя.

Модуль PostgreSQL использует привилегии для управления доступом к объектам базы данных, как описано в документации по продукту PostgreSQL. Пользователю администратора сервера в Azure Database для PostgreSQL предоставлены следующие привилегии:

  • Вход, NOSUPERUSER, INHERIT, CREATEB, CREATEROLE

Учетная запись администратора сервера может использоваться для создания дополнительных пользователей и предоставления этим пользователям роли azure_pg_admin. Кроме того, учетная запись администратора сервера может использоваться для создания менее привилегированных пользователей и ролей, имеющих доступ к отдельным базам данных и схемам.

Создание дополнительных пользователей администратора в Базе данных Azure для PostgreSQL

  1. Получите сведения о подключении и имя пользователя администратора. Для подключения к гибкому экземпляру сервера для PostgreSQL требуется полное имя сервера и учетные данные администратора. Вы можете легко найти имя сервера и сведения о входе на странице обзора сервера или на странице "Свойства " на портале Azure.

  2. Используйте учетную запись администратора и пароль для подключения к гибкому экземпляру сервера Базы данных Azure для PostgreSQL. Используйте предпочитаемое клиентское средство, например pgAdmin или psql. Если вы не уверены, как подключиться, см. статью "Создание базы данных Azure для PostgreSQL".

  3. Измените и запустите следующий код SQL. Замените новое имя пользователя значением <заполнителя new_user> и замените пароль заполнителя собственным надежным паролем.

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

Создание пользователей базы данных в Базе данных Azure для PostgreSQL

  1. Получите сведения о подключении и имя пользователя администратора. Для подключения к гибкому экземпляру сервера для PostgreSQL требуется полное имя сервера и учетные данные администратора. Вы можете легко найти имя сервера и сведения о входе на странице обзора сервера или на странице "Свойства " на портале Azure.

  2. Используйте учетную запись администратора и пароль для подключения к гибкому экземпляру сервера Базы данных Azure для PostgreSQL. Используйте предпочитаемое клиентское средство, например pgAdmin или psql.

  3. Измените и запустите следующий код SQL. Замените значение <db_user> заполнителя вашим предполагаемым именем пользователя и <newdb> заполнителем собственным именем базы данных. Замените пароль заполнителя собственным надежным паролем.

    Приведенный ниже код SQL создает новую базу данных, а затем создает нового пользователя в гибком экземпляре сервера Базы данных Azure для PostgreSQL и предоставляет доступ к новой базе данных для этого пользователя.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. С помощью учетной записи администратора может потребоваться предоставить другие привилегии для защиты объектов в базе данных. Дополнительные сведения о ролях и привилегиях базы данных см. в документации PostgreSQL . Рассмотрим пример.

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

    Если пользователь создает таблицу role, эта таблица принадлежит пользователю. Если другому пользователю нужен доступ к таблице, необходимо предоставить права другому пользователю на уровне таблицы.

    Рассмотрим пример.

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Войдите на сервер, указав указанную базу данных, используя новое имя пользователя и пароль. В этом примере показана командная строка psql. С помощью этой команды вам будет предложено ввести пароль для имени пользователя. Замените собственное имя сервера, имя базы данных и имя пользователя.

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