diff options
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); } |