@@ -64,17 +64,45 @@ SELECT sepgsql_getcon();-- confirm client privilege
6464
6565CREATE TABLE t3 (s int, t text);
6666INSERT INTO t3 VALUES (1, 'sss'), (2, 'ttt'), (3, 'uuu');
67+ SELECT sepgsql_getcon();-- confirm client privilege
68+ sepgsql_getcon
69+ ----------------------------------------------------
70+ unconfined_u:unconfined_r:sepgsql_regtest_dba_t:s0
71+ (1 row)
72+
73+ CREATE TABLE t4 (m int, n text);
74+ INSERT INTO t4 VALUES (1,'mmm'), (2,'nnn'), (3,'ooo');
6775SELECT objtype, objname, label FROM pg_seclabels
68- WHERE provider = 'selinux'
69- AND objtype in ('table', 'column')
70- AND objname in ('t1', 't2', 't3');
76+ WHERE provider = 'selinux' AND objtype = 'table' AND objname in ('t1', 't2', 't3');
7177 objtype | objname | label
7278---------+---------+-----------------------------------------------
7379 table | t1 | unconfined_u:object_r:sepgsql_table_t:s0
7480 table | t2 | unconfined_u:object_r:sepgsql_table_t:s0
7581 table | t3 | unconfined_u:object_r:user_sepgsql_table_t:s0
7682(3 rows)
7783
84+ SELECT objtype, objname, label FROM pg_seclabels
85+ WHERE provider = 'selinux' AND objtype = 'column' AND (objname like 't3.%' OR objname like 't4.%');
86+ objtype | objname | label
87+ ---------+-------------+-----------------------------------------------
88+ column | t3.t | unconfined_u:object_r:user_sepgsql_table_t:s0
89+ column | t3.s | unconfined_u:object_r:user_sepgsql_table_t:s0
90+ column | t3.ctid | unconfined_u:object_r:user_sepgsql_table_t:s0
91+ column | t3.xmin | unconfined_u:object_r:user_sepgsql_table_t:s0
92+ column | t3.cmin | unconfined_u:object_r:user_sepgsql_table_t:s0
93+ column | t3.xmax | unconfined_u:object_r:user_sepgsql_table_t:s0
94+ column | t3.cmax | unconfined_u:object_r:user_sepgsql_table_t:s0
95+ column | t3.tableoid | unconfined_u:object_r:user_sepgsql_table_t:s0
96+ column | t4.n | unconfined_u:object_r:sepgsql_table_t:s0
97+ column | t4.m | unconfined_u:object_r:sepgsql_table_t:s0
98+ column | t4.ctid | unconfined_u:object_r:sepgsql_sysobj_t:s0
99+ column | t4.xmin | unconfined_u:object_r:sepgsql_sysobj_t:s0
100+ column | t4.cmin | unconfined_u:object_r:sepgsql_sysobj_t:s0
101+ column | t4.xmax | unconfined_u:object_r:sepgsql_sysobj_t:s0
102+ column | t4.cmax | unconfined_u:object_r:sepgsql_sysobj_t:s0
103+ column | t4.tableoid | unconfined_u:object_r:sepgsql_sysobj_t:s0
104+ (16 rows)
105+
78106--
79107-- Tests for SECURITY LABEL
80108--
@@ -456,6 +484,7 @@ SELECT sepgsql_getcon();-- confirm client privilege
456484DROP TABLE IF EXISTS t1 CASCADE;
457485DROP TABLE IF EXISTS t2 CASCADE;
458486DROP TABLE IF EXISTS t3 CASCADE;
487+ DROP TABLE IF EXISTS t4 CASCADE;
459488DROP FUNCTION IF EXISTS f1() CASCADE;
460489DROP FUNCTION IF EXISTS f2() CASCADE;
461490DROP FUNCTION IF EXISTS f3() CASCADE;