Zarządzanie użytkownikami na serwerze elastycznym Azure Database for PostgreSQL

W tym artykule opisano sposób tworzenia użytkowników na serwerze elastycznym Azure Database for PostgreSQL.

Aby dowiedzieć się, jak tworzyć użytkowników subskrypcji Azure i ich uprawnienia oraz zarządzać nimi, zobacz artykuł Azure kontrola dostępu oparta na rolach (Azure RBAC) lub jak dostosować role.

Konto administratora serwera

Podczas tworzenia Azure Database for PostgreSQL serwera elastycznego należy podać nazwę użytkownika i hasło administratora serwera. Aby uzyskać więcej informacji, zobacz Tworzenie usługi Azure Database for PostgreSQL , aby zapoznać się z podejściem krok po kroku. Ponieważ nazwa użytkownika administratora serwera jest nazwą niestandardową, możesz zlokalizować wybraną nazwę użytkownika administratora serwera w portalu Azure.

Serwer elastyczny Azure Database for PostgreSQL jest tworzony z trzema zdefiniowanymi rolami domyślnymi. Te role można wyświetlić, uruchamiając polecenie: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • konto administratora serwera

Użytkownik administratora serwera jest członkiem roli azure_pg_admin. Jednak konto administratora serwera nie jest częścią roli azuresu. Ponieważ ta usługa jest zarządzaną usługą typu PaaS, tylko firma Microsoft pełni rolę superużytkownika.

Aparat PostgreSQL używa uprawnień do kontrolowania dostępu do obiektów bazy danych, zgodnie z opisem w dokumentacji produktu PostgreSQL. W usłudze Azure Database for PostgreSQL administrator serwera ma następujące uprawnienia:

  • Zaloguj się, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

Użyj konta użytkownika administratora serwera, aby utworzyć więcej użytkowników i przyznać tym użytkownikom rolę azure_pg_admin. Ponadto użyj konta administratora serwera, aby utworzyć mniej uprzywilejowanych użytkowników i ról, które mają dostęp do poszczególnych baz danych i schematów.

Jak utworzyć więcej użytkowników administracyjnych w usłudze Azure Database for PostgreSQL

  1. Uzyskaj informacje o połączeniu i nazwę użytkownika administratora. Aby nawiązać połączenie z serwerem Azure Database for PostgreSQL elastycznym, musisz mieć pełną nazwę serwera i poświadczenia logowania administratora. Nazwę serwera i informacje logowania można łatwo znaleźć na stronie Przegląd serwera lub na stronie Właściwości w witrynie Azure Portal.

  2. Użyj konta administratora i hasła, aby nawiązać połączenie z serwerem elastycznym Azure Database for PostgreSQL. Użyj preferowanego narzędzia klienckiego, takiego jak pgAdmin lub psql. Jeśli nie masz pewności, jak nawiązać połączenie, zobacz Tworzenie usługi Azure Database for PostgreSQL.

  3. Edytuj i uruchom następujący kod SQL. Zastąp nową nazwę użytkownika wartością <new_user>symbolu zastępczego i zastąp hasło zastępcze własnym silnym hasłem.

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

Jak tworzyć użytkowników bazy danych w usłudze Azure Database for PostgreSQL

  1. Uzyskaj informacje o połączeniu i nazwę użytkownika administratora. Aby nawiązać połączenie z serwerem Azure Database for PostgreSQL elastycznym, musisz mieć pełną nazwę serwera i poświadczenia logowania administratora. Nazwę serwera i informacje logowania można łatwo znaleźć na stronie Przegląd serwera lub na stronie Właściwości w witrynie Azure Portal.

  2. Użyj konta administratora i hasła, aby nawiązać połączenie z serwerem elastycznym Azure Database for PostgreSQL. Użyj preferowanego narzędzia klienckiego, takiego jak pgAdmin lub psql.

  3. Edytuj i uruchom następujący kod SQL. Zastąp wartość symbolu zastępczego <db_user> docelową nową nazwą użytkownika, a wartość symbolu zastępczego <newdb> własną nazwą bazy danych. Zastąp hasło zastępcze własnym silnym hasłem.

    Ten kod SQL tworzy nową bazę danych, a następnie tworzy nowego użytkownika na serwerze elastycznym Azure Database for PostgreSQL i przyznaje uprawnienia do łączenia się z nową bazą danych dla tego użytkownika.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. Przy użyciu konta administratora może być konieczne przyznanie innych uprawnień w celu zabezpieczenia obiektów w bazie danych. Aby uzyskać więcej informacji na temat ról i uprawnień bazy danych, zapoznaj się z dokumentacją bazy danych PostgreSQL . Przykład:

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

    Jeśli użytkownik utworzy tabelę "rola", tabela należy do tego użytkownika. Jeśli inny użytkownik potrzebuje dostępu do tabeli, musisz przyznać innym użytkownikom uprawnienia na poziomie tabeli.

    Przykład:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Zaloguj się na serwerze, określając wyznaczoną bazę danych przy użyciu nowej nazwy użytkownika i hasła. W tym przykładzie pokazano wiersz polecenia psql. Za pomocą tego polecenia zostanie wyświetlony monit o podanie hasła dla nazwy użytkownika. Zastąp własną nazwę serwera, nazwę bazy danych i nazwę użytkownika.

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