From 7b30490bc9cebef913f6f95cd0487a3c6989dafa Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Sat, 21 Feb 1998 06:32:15 +0000 Subject: First step done, below is the patch to have views to override the permission checks for the accessed tables. Now we can do the following: CREATE VIEW db_user AS SELECT usename, usesysid, usecreatedb, usetrace, usecatupd, '**********'::text as passwd, valuntil FROM pg_user; REVOKE ALL ON pg_user FROM public; REVOKE ALL ON db_user FROM public; GRANT SELECT ON db_user TO public; --- src/backend/executor/execMain.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/backend/executor/execMain.c') diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 8702ede248..760d277dee 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.42 1998/02/13 03:26:38 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.43 1998/02/21 06:31:37 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -299,6 +299,17 @@ ExecCheckPerms(CmdType operation, { RangeTblEntry *rte = lfirst(lp); + if (rte->skipAcl) + { + /* + * This happens if the access to this table is due + * to a view query rewriting - the rewrite handler + * checked the permissions against the view owner, + * so we just skip this entry. + */ + continue; + } + relid = rte->relid; htp = SearchSysCacheTuple(RELOID, ObjectIdGetDatum(relid), -- cgit v1.2.1