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