Opis wbudowanych ról serwera usługi Azure Database for PostgreSQL
Baza danych PostgreSQL zarządza dostępem do bazy danych przy użyciu ról. Rola może być użytkownikiem bazy danych lub grupą użytkowników. Role mogą:
- Własne obiekty bazy danych, takie jak tabele lub funkcje.
- Przypisz uprawnienia do tych obiektów do innych ról.
- Przyznaj członkostwu innej roli, dzięki czemu rola członka ma swoje uprawnienia.
Serwer usługi Azure Database for PostgreSQL jest tworzony z trzema rolami domyślnymi:
- azure_pg_admin
- azuresu
- administrator serwera — część roli azure_pg_admin
Wyświetl wszystkie role serwera, wykonując następujące zapytanie:
SELECT * FROM pg_roles;
Uwaga
Usługa Azure Database for PostgreSQL to zarządzana usługa PaaS, a tylko użytkownicy firmy Microsoft mają rolę azuresu (superu użytkownika).
Podczas tworzenia serwera został również utworzony użytkownik administratora serwera. Ten użytkownik automatycznie został członkiem roli azure_pg_admin . Administrator serwera usługi Azure Database for PostgreSQL ma następujące uprawnienia: LOGIN, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE, REPLICATION
Teraz konto użytkownika administratora serwera utworzone podczas tworzenia serwera może:
- Utwórz więcej użytkowników i przyznaj tym użytkownikom rolę azure_pg_admin .
- Utwórz mniej uprzywilejowanych użytkowników i ról, którzy mają dostęp do poszczególnych baz danych i schematów.
Usługa PostgreSQL zawiera niektóre role domyślne, które można przypisać do użytkowników. Obejmują one często wymagane uprawnienia dostępu:
- pg_read_all_settings
- pg_signal_backend
- pg_read_server_files
- pg_write_server_files
- pg_execute_server_program
Istnieją również bardziej specjalistyczne role:
- pg_monitor
- pg_read_all_stats
- pg_stat_scan_tables
- Replikacja
Tworzenie użytkowników administracyjnych w usłudze Azure Database for PostgreSQL
- W narzędziu Azure Data Studio (lub preferowanym narzędziu klienckim) połącz się z serwerem usługi Azure Database for PostgreSQL przy użyciu poświadczeń logowania administratora.
- Zmodyfikuj następujący kod SQL, zastępując symbole zastępcze nazwą użytkownika i hasłem:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;