pg_policy
В каталоге pg_policy
хранятся политики безопасности на уровне строк для таблиц. Политика определяет тип команд, к которым она применима (например, ко всем командам), роли, подпадающие под ее действие, а также выражения, добавляемые в запросы:
- в виде квалификационного условия безопасности при обращении к таблице;
- в виде опции
WITH CHECK
для запросов, которые пытаются добавлять новые записи в таблицу.
Столбец | Тип данных | Описание |
---|---|---|
oid | oid | Идентификатор строки |
polname | name | Имя политики |
polrelid | oid (ссылается на pg_class.oid) | Таблица, к которой применяется политика |
polcmd | char | Тип команды, к которой применяется политика: r для SELECT, a для INSERT, w для UPDATE, d для DELETE или * для всех |
polpermissive | bool | Является ли политика разрешительной или ограничительной? |
polroles | oid[] (ссылается на pg_authid.oid) | Роли, к которым применяется политика; ноль означает PUBLIC (и обычно появляется один в массиве) |
polqual | pg_node_tree | Дерево выражений, которое должно быть добавлено к квалификациям барьера безопасности для запросов, использующих таблицу |
polwithcheck | pg_node_tree | Дерево выражений, которое нужно добавить к квалификациям WITH CHECK для запросов, которые пытаются добавить строки в таблицу |
Примечание
Политики, хранящиеся в
pg_policy
, применяются только тогда, когда для их таблицы установлен pg_class.relrowsecurity