*** pgsql/src/test/regress/expected/privileges.out 2009/02/06 21:15:12 1.45 --- pgsql/src/test/regress/expected/privileges.out 2009/03/05 17:30:29 1.46 *************** SET SESSION AUTHORIZATION regressuser3; *** 393,398 **** --- 393,440 ---- DELETE FROM atest5 WHERE one = 1; -- fail ERROR: permission denied for relation atest5 DELETE FROM atest5 WHERE two = 2; -- ok + -- check inheritance cases + SET SESSION AUTHORIZATION regressuser1; + CREATE TABLE atestp1 (f1 int, f2 int) WITH OIDS; + CREATE TABLE atestp2 (fx int, fy int) WITH OIDS; + CREATE TABLE atestc (fz int) INHERITS (atestp1, atestp2); + GRANT SELECT(fx,fy,oid) ON atestp2 TO regressuser2; + GRANT SELECT(fx) ON atestc TO regressuser2; + SET SESSION AUTHORIZATION regressuser2; + SELECT fx FROM atestp2; -- ok + fx + ---- + (0 rows) + + SELECT fy FROM atestp2; -- fail, no privilege on atestc.fy + ERROR: permission denied for relation atestc + SELECT atestp2 FROM atestp2; -- fail, no privilege on atestc.fy + ERROR: permission denied for relation atestc + SELECT oid FROM atestp2; -- fail, no privilege on atestc.oid + ERROR: permission denied for relation atestc + SET SESSION AUTHORIZATION regressuser1; + GRANT SELECT(fy,oid) ON atestc TO regressuser2; + SET SESSION AUTHORIZATION regressuser2; + SELECT fx FROM atestp2; -- still ok + fx + ---- + (0 rows) + + SELECT fy FROM atestp2; -- ok + fy + ---- + (0 rows) + + SELECT atestp2 FROM atestp2; -- ok + atestp2 + --------- + (0 rows) + + SELECT oid FROM atestp2; -- ok + oid + ----- + (0 rows) + -- privileges on functions, languages -- switch to superuser \c - *************** DROP TABLE atest3; *** 791,796 **** --- 833,841 ---- DROP TABLE atest4; DROP TABLE atest5; DROP TABLE atest6; + DROP TABLE atestc; + DROP TABLE atestp1; + DROP TABLE atestp2; DROP GROUP regressgroup1; DROP GROUP regressgroup2; REVOKE USAGE ON LANGUAGE sql FROM regressuser1;