pg_policy
目录pg_policy存储着表的行级安全性策略。
一个策略包括它适用于的命令种类(可能适用于所有命令)、它适用于的角色、
被作为安全屏障条件增加到包括该表的查询的表达式以及被作为
WITH CHECK选项增加到尝试向表增加新纪录的查询的表达式。
表 51.38. pg_policy列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
polname | name | 策略的名称 | |
polrelid | oid | | 策略适用的表 |
polcmd | char | 策略适用的命令类型:
r表示SELECT,
a表示INSERT,
w表示UPDATE,
d表示DELETE,
*表示所有命令类型 | |
polpermissive | boolean | 策略是宽容性的还是限制性的? | |
polroles | oid[] | | 策略适用的角色 |
polqual | pg_node_tree | 被作为安全屏障条件增加到使用该表的查询的表达式树 | |
polwithcheck | pg_node_tree | 被作为WITH CHECK 条件增加到尝试向表增加行的查询的表达式树 |
存储在pg_policy中的策略只有在它们所适用的表的
pg_class.relrowsecurity被设置时才其作用。