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