Предоставление разрешений в Базе данных Azure SQL для PostgreSQL
Чтобы разрешить пользователям доступ к базам данных, размещенным на сервере Базы данных Azure для PostgreSQL, необходимо создать роли (пользователей) и предоставить или отозвать разрешения к объектам базы данных.
Создание пользователей базы данных в службе "База данных Azure для PostgreSQL"
В Azure Data Studio (или предпочитаемом клиентском средстве) подключитесь к серверу Базы данных Azure для PostgreSQL с учетными данными для входа администратора.
Используя соответствующую базу данных в качестве текущей базы данных, используйте
CREATE ROLE
соответствующие параметры для создания новой роли (пользователя).В качестве примера рассмотрите следующий запрос:
- Этот код создает базу данных testdb.
- Создает нового пользователя с надежным паролем.
- Предоставляет разрешения на подключение к базе данных 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>;
Чтобы попробовать запрос, можно заменить заполнители своими сведениями о пользователе.
Затем можно предоставить дополнительные привилегии объектам в базе данных. Например:
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
Синтаксис инструкции CREATE ROLE:
CREATE ROLE name [ [ WITH ] option [ ... ] ]
Параметр WHERE может быть:
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 [, ...]
Ниже перечислены необязательные параметры.
- SUPERUSER | NOSUPERUSER — нельзя назначать привилегии SUPERUSER в База данных Azure для PostgreSQL. Если значение не указано, значение по умолчанию — NOSUPERUSER.
- CREATEDB | NOCREATEDB — может ли роль создавать базы данных. Значение по умолчанию — NOCREATEDB.
- CREATEROLE | NOCREATEROLE — может ли роль создавать новые роли, то есть выполнять CREATE ROLE. Если разрешение CREATEROLE предоставлено, роль также может изменять и удалять другие роли. Значение по умолчанию — NOCREATEROLE.
- НАСЛЕДОВАНИЕ | NOINHERIT — является ли роль наследующей привилегии ролей прямым или косвенным членом. По умолчанию используется значение INHERIT.
- LOGIN | NOLOGIN — разрешено ли входить в систему роль. Роль с атрибутом LOGIN — это пользователь базы данных. Роли без атрибута LOGIN можно использовать для управления привилегиями базы данных. NOLOGIN — это значение по умолчанию.
- REPLICATION | NOREPLICATION — является ли роль ролью репликации. Роль должна иметь этот атрибут для подключения к серверу в режиме репликации и создания или удаления слотов репликации. Атрибут REPLICATION — это привилегированная роль, которая должна использоваться только для репликации. Значение по умолчанию — NOREPLICATION. Чтобы создать эту роль, необходимо быть членом azure_pg_admin.
- BYPASSRLS | NOBYPASSRLS — обходит ли роль каждую политику безопасности на уровне строк (RLS).
- CONNECTION LIMIT connlimit — указывает, сколько одновременных подключений может выполнять роль, которая может выполнять вход. Значение по умолчанию равно "-1", Этот параметр не помещет ограничение на одновременные подключения.
- [ ENCRYPTED ] PASSWORD 'password'| PASSWORD NULL — задает пароль роли. Пароль используется только ролями с атрибутом LOGIN. Если пароль не указан, пароль имеет значение NULL, а проверка подлинности паролей завершается ошибкой. Кроме того, можно явно задать PASSWORD NULL.
- VALID UNTIL 'timestamp' — дата и время, после которого пароль роли больше не действителен. Если опущено, срок действия пароля отсутствует.
- IN ROLE role_name — одна или несколько ролей, в которые добавляется новая роль в качестве нового члена. Нет возможности добавить новую роль в качестве администратора; используйте команду GRANT.
- IN GROUP role_name является устаревшей альтернативой IN ROLE.
- ROLE role_name — одна или несколько ролей добавляются в качестве членов новой роли. (Это изменение в действительности делает новую роль группой.)
- ADMIN role_name — предложение ADMIN похоже на ROLE, но именованные роли добавляются в новую роль WITH ADMIN OPTION, что дает им право предоставлять членство в этой роли другим пользователям.
Примечание.
Изменить атрибуты роли можно с помощью ALTER ROLE, а удалить роль — с помощью DROP ROLE.