Udělení oprávnění ve službě Azure SQL Database for PostgreSQL
Pokud chcete uživatelům povolit přístup k databázím hostovaným na serveru Azure Database for PostgreSQL, musíte vytvořit role (uživatele) a udělit nebo odepřít oprávnění databázovým objektům.
Vytváření uživatelů databáze ve službě Azure Database for PostgreSQL
V Nástroji Azure Data Studio (nebo preferovaném klientském nástroji) se připojte k serveru Azure Database for PostgreSQL pomocí přihlašovacích údajů správce.
S relevantní databází jako aktuální databází použijte
CREATE ROLE
s příslušnými možnostmi vytvoření nové role (uživatele).Například následující dotaz:
- Vytvoří novou databázi s názvem testdb.
- Vytvoří nového uživatele se silným heslem.
- Uděluje oprávnění pro připojení k databázi 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>;
Pokud chcete dotaz vyzkoušet, můžete zástupné symboly nahradit informacemi o uživateli.
Potom můžete udělit více oprávnění k objektům v databázi. Příklad:
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
Syntaxe pro CREATE ROLE je:
CREATE ROLE name [ [ WITH ] option [ ... ] ]
Možnost WHERE může být:
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 [, ...]
Volitelné parametry jsou:
- SUPERUŽIVATEL | NOSUPERUSER – Ve službě Azure Database for PostgreSQL nemůžete přiřadit oprávnění SUPERUSER. Pokud není zadáno, JE NOSPERUSER výchozím nastavením.
- CREATEDB | NOCREATEDB – určuje, jestli může role vytvářet databáze. Výchozí hodnota je NOCREATEDB.
- CREATEROLE | NOCREATEROLE – zda role může vytvářet nové role, to znamená spustit CREATE ROLE. Pokud je udělena oprávnění CREATEROLE, může role také měnit a odstraňovat další role. NOCREATEROLE je výchozí hodnota.
- DĚDIT | NOINHERIT – jestli role dědí oprávnění rolí, je to přímý nebo nepřímý člen. Funkce INHERIT je výchozí.
- PŘIHLÁŠENÍ | NOLOGIN – určuje, jestli se má role přihlásit. Role s atributem LOGIN je databázový uživatel. Role bez atributu LOGIN je možné použít ke správě oprávnění databáze. NOLOGIN je výchozí hodnota.
- REPLIKACE | NOREPLICATION – určuje, jestli je role rolí replikace. Role musí mít tento atribut pro připojení k serveru v režimu replikace a k vytvoření nebo vyřazení slotů replikace. Atribut REPLIKACE je privilegovaná role, která by se měla používat pouze pro replikaci. FUNKCE NOREPLICATION je výchozí. Abyste mohli tuto roli vytvořit, musíte být členem azure_pg_admin.
- BYPASSRLS | NOBYPASSRLS – určuje, jestli role obchází všechny zásady zabezpečení na úrovni řádků (RLS).
- CONNECTION LIMIT connlimit – určuje, kolik souběžných připojení může role, která se může přihlásit. -1 je výchozí hodnota. Tento parametr neumisťuje omezení souběžných připojení.
- [ ZAŠIFROVÁNO ] HESLO heslo | PASSWORD NULL – nastaví heslo role. Heslo používají jenom role s atributem LOGIN. Pokud není zadané žádné heslo, heslo má hodnotu NULL a ověření hesla se nezdaří. Alternativně explicitně uveďte HODNOTU NULL hesla.
- VALID UNTIL 'timestamp' - datum a čas, po kterém heslo role již není platné. Pokud heslo vynecháte, není k dispozici žádný časový limit.
- IN ROLE role_name – jedna nebo více rolí, ke kterým je nová role přidána jako nový člen. Není možné přidat novou roli jako správce; použijte příkaz GRANT.
- IN GROUP role_name zastaralou alternativu funkce IN ROLE.
- Role role_name – jedna nebo více rolí se přidají jako členové nové role. (Tato změna způsobí, že nová role je skupina.)
- ROLE_NAME SPRÁVCE – klauzule ADMIN je podobná roli, ale pojmenované role se přidají do nové role POMOCÍ MOŽNOSTI SPRÁVCE, takže mají právo udělit členství v této roli ostatním.
Poznámka:
Můžete změnit atributy role s ALTER ROLE a odebrat roli s ROLÍ DROP.