Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
>> Here is how I think SQL-level row permissions would work:
>
>> We already have an optional OID system column that can be specified
>> during table creation (WITH OIDS). We could have another optional oid
>> column (WITH ROW SECURITY) called security_context which would store the
>> oid of the role that can see the row; if the oid is zero (InvalidOid),
>> anyone can see it. SE-PostgreSQL would default to WITH ROW SECURITY and
>> use the oid to look up strings in pg_security.
>
> This is just a different syntax for KaiGai's label storage
> implementation. It doesn't really answer any of the hard questions,
> like what the heck is the behavior of foreign keys.
SE-PostgreSQL changes its internal state during foreign key constraint checks.
When user tries to update/delete a PK refered by invisible FK, SE-PostgreSQL
generates an error and prevent inconsistency in FK constraint.
When user tries to insert/update a FK which refers invisible PK, it is failed.
But it does not affect integrity consistency.
Thanks,
--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>