Предоставление разрешений в Базе данных 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 [ ... ] ]
ГДЕ опция может быть:
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 — это значение по умолчанию.
- РЕПЛИКАЦИЯ | NOREPLICATION — является ли роль ролью репликации. Роль должна иметь этот атрибут для подключения к серверу в режиме репликации и создания или удаления слотов репликации. Атрибут REPLICATION — это привилегированная роль, которая должна использоваться только для репликации. Значение по умолчанию — NOREPLICATION. Чтобы создать эту роль, необходимо быть членом azure_pg_admin.
- ОБХОД RLS | NOBYPASSRLS — обходит ли роль каждую политику безопасности на уровне строк (RLS).
- CONNECTION LIMIT connlimit — указывает, сколько одновременных подключений может выполнять роль, имеющая право входа. Значение по умолчанию равно "-1", Этот параметр не помещет ограничение на одновременные подключения.
- [ ENCRYPTED ] PASSWORD 'password'| PASSWORD NULL — задает пароль роли. Пароль используется только ролями с атрибутом LOGIN. Если пароль не указан, пароль имеет значение NULL, а проверка подлинности паролей завершается ошибкой. Кроме того, можно явно задать PASSWORD NULL.
- ДЕЙСТВУЕТ ДО метка времени — дата и время, после которых пароль роли становится недействительным. Если опущено, срок действия пароля отсутствует.
- В РОЛИ role_name — одна или несколько ролей, в которые добавляется новая роль в качестве нового члена. Нет возможности добавить новую роль в качестве администратора; используйте команду GRANT.
- IN GROUP role_name является устаревшей альтернативой для IN ROLE.
- РОЛЬ role_name — одна или несколько ролей добавляются в качестве членов новой роли. (Это изменение в действительности делает новую роль группой.)
- АДМИН role_name — конструкция ADMIN аналогична ROLE, но указанные роли добавляются в новую роль с параметром WITH ADMIN OPTION, разрешая им право предоставлять членство в этой роли другим пользователям.
Примечание.
Вы можете изменить атрибуты роли, используя ALTER ROLE и удалить роль, используя DROP ROLE.