Udzielanie uprawnień w usłudze Azure SQL Database for PostgreSQL

Ukończone

Aby umożliwić użytkownikom dostęp do baz danych hostowanych na serwerze usługi Azure Database for PostgreSQL, należy utworzyć role (użytkowników) i udzielić lub odmówić uprawnień do obiektów bazy danych.

Tworzenie użytkowników bazy danych w usłudze Azure Database for PostgreSQL

  1. 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.

  2. Z odpowiednią bazą danych jako bieżącą bazą danych użyj CREATE ROLE odpowiednich opcji, aby utworzyć nową rolę (użytkownika).

  3. Na przykład następujące zapytanie:

    1. Tworzy nową bazę danych o nazwie testdb.
    2. Tworzy nowego użytkownika z silnym hasłem.
    3. Przyznaje uprawnienia łączenia z bazą danych testdb.
    CREATE DATABASE testdb;
    CREATE ROLE <db_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
    GRANT CONNECT ON DATABASE testdb TO <db_user>;
    

    Aby wypróbować zapytanie, możesz zastąpić symbole zastępcze informacjami o użytkowniku.

  4. Następnie możesz przyznać więcej uprawnień do obiektów w bazie danych. Na przykład:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    

Składnia TWORZENIA ROLI to:

CREATE ROLE name [ [ WITH ] option [ ... ] ]

Opcja WHERE może być:

SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]

Opcjonalne parametry:

  • SUPERUŻYTKOWNIK | NOSUPERUSER — nie można przypisać uprawnień ADMINISTRATORA w usłudze Azure Database for PostgreSQL. Jeśli nie zostanie określony, wartość domyślna to NOSUPERUSER.
  • CREATEDB | NOCREATEDB — czy rola może tworzyć bazy danych. Wartość domyślna to NOCREATEDB.
  • CREATEROLE | NOCREATEROLE — czy rola może tworzyć nowe role, czyli wykonywać TWORZENIE ROLI. Jeśli uprawnienie CREATEROLE zostanie przyznane, rola może również zmienić i usunąć inne role. NOCREATEROLE jest wartością domyślną.
  • DZIEDZICZ | NOINHERIT — czy rola dziedziczy uprawnienia ról, jest bezpośrednim lub pośrednim elementem członkowskim. Dziedzicz jest wartością domyślną.
  • LOGOWANIE | NOLOGIN — czy rola może się zalogować. Rola z atrybutem LOGIN jest użytkownikiem bazy danych. Role bez atrybutu LOGIN mogą służyć do zarządzania uprawnieniami bazy danych. NOLOGIN jest wartością domyślną.
  • REPLIKACJA | NOREPLICATION — czy rola jest rolą replikacji. Rola musi mieć ten atrybut, aby nawiązać połączenie z serwerem w trybie replikacji i utworzyć lub usunąć miejsca replikacji. Atrybut REPLICATION jest rolą uprzywilejowaną, która powinna być używana tylko do replikacji. NOREPLICATION jest wartością domyślną. Aby utworzyć tę rolę, musisz być członkiem azure_pg_admin.
  • BYPASSRLS | NOBYPASSRLS — czy rola pomija wszystkie zasady zabezpieczeń na poziomie wiersza.
  • LIMIT POŁĄCZEŃ connlimit — określa, ile połączeń współbieżnych może wykonywać rola, która może się zalogować. -1 jest wartością domyślną. Ten parametr nie ogranicza liczby połączeń współbieżnych.
  • [ ENCRYPTED ] HASŁO 'password'| PASSWORD NULL — ustawia hasło roli. Hasło jest używane tylko przez role z atrybutem LOGIN. Jeśli nie określono hasła, hasło ma wartość NULL, a uwierzytelnianie hasłem kończy się niepowodzeniem. Alternatywnie jawnie podaj wartość PASSWORD NULL.
  • VALID UNTIL 'timestamp' - data i godzina, po której hasło roli nie jest już prawidłowe. W przypadku pominięcia hasła nie ma limitu czasu.
  • IN ROLE role_name — co najmniej jedna rola, do której jest dodawana nowa rola jako nowy element członkowski. Nie ma możliwości dodania nowej roli jako administratora; użyj polecenia GRANT.
  • W GRUPIE role_name przestarzałą alternatywę dla ROLI IN.
  • ROLA role_name — co najmniej jedna rola jest dodawana jako członkowie nowej roli. (Ta zmiana powoduje, że nowa rola jest rolą grupy).
  • ADMINISTRATOR role_name — klauzula ADMIN jest podobna do ROLI, ale nazwane role są dodawane do nowej roli Z OPCJĄ ADMINISTRATORA, dając im prawo do przyznania członkostwu w tej roli innym osobom.

Uwaga

Atrybuty roli można zmienić za pomocą funkcji ALTER ROLE i usunąć rolę z funkcją DROP ROLE.