1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-06 19:59:18 +03:00
Stephen Frost 6550b901fe Code review for row security.
Buildfarm member tick identified an issue where the policies in the
relcache for a relation were were being replaced underneath a running
query, leading to segfaults while processing the policies to be added
to a query.  Similar to how TupleDesc RuleLocks are handled, add in a
equalRSDesc() function to check if the policies have actually changed
and, if not, swap back the rsdesc field (using the original instead of
the temporairly built one; the whole structure is swapped and then
specific fields swapped back).  This now passes a CLOBBER_CACHE_ALWAYS
for me and should resolve the buildfarm error.

In addition to addressing this, add a new chapter in Data Definition
under Privileges which explains row security and provides examples of
its usage, change \d to always list policies (even if row security is
disabled- but note that it is disabled, or enabled with no policies),
rework check_role_for_policy (it really didn't need the entire policy,
but it did need to be using has_privs_of_role()), and change the field
in pg_class to relrowsecurity from relhasrowsecurity, based on
Heikki's suggestion.  Also from Heikki, only issue SET ROW_SECURITY in
pg_restore when talking to a 9.5+ server, list Bypass RLS in \du, and
document --enable-row-security options for pg_dump and pg_restore.

Lastly, fix a number of minor whitespace and typo issues from Heikki,
Dimitri, add a missing #include, per Peter E, fix a few minor
variable-assigned-but-not-used and resource leak issues from Coverity
and add tab completion for role attribute bypassrls as well.
2014-09-24 16:32:22 -04:00
..
2014-05-06 12:12:18 -04:00
2014-09-19 11:18:35 -04:00
2014-05-06 12:12:18 -04:00
2014-05-06 12:12:18 -04:00
2014-01-07 16:05:30 -05:00
2014-01-07 16:05:30 -05:00
2014-05-06 12:12:18 -04:00
2014-09-19 11:18:35 -04:00
2014-09-19 11:18:35 -04:00
2014-05-06 12:12:18 -04:00
2014-01-07 16:05:30 -05:00
2014-09-19 11:18:35 -04:00
2014-05-06 12:12:18 -04:00
2014-07-10 15:01:43 -04:00
2014-05-06 12:12:18 -04:00
2014-01-07 16:05:30 -05:00
2014-09-19 11:18:35 -04:00
2014-05-06 12:12:18 -04:00
2014-05-06 12:12:18 -04:00
2014-09-24 16:32:22 -04:00
2014-05-06 12:12:18 -04:00
2014-05-06 12:12:18 -04:00
2014-05-06 12:12:18 -04:00
2014-05-06 12:12:18 -04:00
2014-01-07 16:05:30 -05:00
2014-09-24 16:32:22 -04:00
2014-05-06 12:12:18 -04:00
2014-01-07 16:05:30 -05:00
2014-09-19 11:18:35 -04:00
2014-08-29 00:26:17 -04:00