diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-06-14 01:09:22 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-06-14 01:09:22 +0000 |
commit | c9499e68daa5860368300f744337460e43f93865 (patch) | |
tree | 00caeec863c486b7106a7af9985dd0401593104c /src/backend/utils/init/miscinit.c | |
parent | d7763c1f9c950c991daa196609bbd9359ec03a09 (diff) |
has_table_privilege functions from Joe Conway (with some kibitzing from
Tom Lane). For the moment, only the OID/name variants are provided.
I didn't force initdb, but the additions to the 'privileges' regress
test won't pass until you do one.
Diffstat (limited to 'src/backend/utils/init/miscinit.c')
-rw-r--r-- | src/backend/utils/init/miscinit.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 58bf546889e..df46469f000 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.70 2001/06/13 19:52:33 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.71 2001/06/14 01:09:22 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -30,6 +30,7 @@ #include "catalog/pg_shadow.h" #include "miscadmin.h" #include "utils/builtins.h" +#include "utils/lsyscache.h" #include "utils/syscache.h" @@ -442,24 +443,20 @@ InitializeSessionUserId(const char *username) } - +/* + * Change session auth ID while running + */ void SetSessionAuthorization(const char * username) { - HeapTuple userTup; + int32 userid; if (!AuthenticatedUserIsSuperuser) elog(ERROR, "permission denied"); - userTup = SearchSysCache(SHADOWNAME, - PointerGetDatum(username), - 0, 0, 0); - if (!HeapTupleIsValid(userTup)) - elog(ERROR, "user \"%s\" does not exist", username); + userid = get_usesysid(username); - SetSessionUserId(((Form_pg_shadow) GETSTRUCT(userTup))->usesysid); - SetUserId(((Form_pg_shadow) GETSTRUCT(userTup))->usesysid); - - ReleaseSysCache(userTup); + SetSessionUserId(userid); + SetUserId(userid); } |