Zarządzanie użytkownikami w usłudze Azure HorizonDB (wersja zapoznawcza)

W tym artykule opisano sposób tworzenia użytkowników w klastrze Azure HorizonDB.

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 pierwszego tworzenia klastra Azure HorizonDB należy podać nazwę uwierzytelniania i hasło administratora klastra. Aby uzyskać więcej informacji, zobacz Tworzenie klastra Azure HorizonDB aby zapoznać się z podejściem krok po kroku. Ponieważ nazwa uwierzytelniania administratora klastra jest nazwą niestandardową, możesz znaleźć wybraną nazwę użytkownika administratora serwera w portalu Azure.

Klaster Azure HorizonDB jest tworzony z trzema rolami domyślnymi. Te role można wyświetlić, uruchamiając polecenie: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • administrator twojego serwera

Poświadczenie administratora należy do roli azure_pg_admin. Jednak konto administratora nie należy do roli azuresu. Ponieważ ta usługa jest zarządzaną usługą PaaS, tylko firma Microsoft należy do roli superużytkownika.

Aparat PostgreSQL używa uprawnień do kontrolowania dostępu do obiektów bazy danych, zgodnie z opisem w dokumentacji produktu PostgreSQL. W Azure HorizonDB administrator serwera otrzymuje następujące uprawnienia: LOGIN, NOSUPERUSER, INHERIT, CREATEDB i CREATEROLE.

Administrator klastra może tworzyć kolejnych użytkowników i przypisywać tym użytkownikom rolę azure_pg_admin. Ponadto uwierzytelnianie administratora klastra może tworzyć mniej uprzywilejowanych użytkowników i ról, którzy mają dostęp do poszczególnych baz danych i schematów.

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

  1. Uzyskaj informacje o połączeniu i nazwę użytkownika administratora. Aby nawiązać połączenie z klastrem Azure HorizonDB, potrzebujesz pełnej nazwy serwera i poświadczeń 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 klastrem Azure HorizonDB. Użyj preferowanego narzędzia klienckiego, takiego jak pgAdmin lub psql. Jeśli nie masz pewności, jak nawiązać połączenie, zobacz Tworzenie klastra Azure HorizonDB.

  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 HorizonDB

Note

Nie umieszczaj żadnych danych osobowych, wrażliwych ani poufnych w nazwach zasobów (na przykład w nazwie tabeli, nazwie bazy danych) ani w tagach zasobów. Dane wpisywane w tych polach nie są traktowane jako dane klienta.

  1. Uzyskaj informacje o połączeniu i nazwę użytkownika administratora. Aby nawiązać połączenie z klastrem Azure HorizonDB, potrzebujesz pełnej nazwy serwera i poświadczeń 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 klastrem Azure HorizonDB. Użyj preferowanego narzędzia klienckiego, takiego jak PostgreSQL dla Visual Studio Code, pgAdmin lub psql.

  3. Edytuj i uruchom następujący kod SQL. Zastąp wartość zastępczą <db_user> docelową nową nazwą użytkownika, a wartość zastępczą <newdb> nazwą własnej 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 w klastrze Azure HorizonDB i przyznaje uprawnienia do nawiązywania połączenia 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, zapoznaj się z dokumentacją bazy danych PostgreSQL , aby uzyskać więcej informacji na temat ról i uprawnień bazy danych. 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="{clustername}.{clusteridentifier}.{region}.horizondb.azure.com" --port=5432 --username=db_user --dbname=newdb