aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/init/postinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/init/postinit.c')
-rw-r--r--src/backend/utils/init/postinit.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index f63590cdb98..a9e083557e0 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -8,19 +8,19 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.64 2000/08/06 04:39:10 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.65 2000/09/06 14:15:22 petere Exp $
*
*
*-------------------------------------------------------------------------
*/
+#include "postgres.h"
+
#include <fcntl.h>
#include <sys/file.h>
#include <sys/types.h>
#include <math.h>
#include <unistd.h>
-#include "postgres.h"
-
#include "access/heapam.h"
#include "catalog/catname.h"
#include "catalog/pg_database.h"
@@ -223,7 +223,7 @@ int lockingOff = 0; /* backend -L switch */
/*
*/
void
-InitPostgres(const char *dbname)
+InitPostgres(const char *dbname, const char *username)
{
bool bootstrap = IsBootstrapProcessingMode();
@@ -366,16 +366,19 @@ InitPostgres(const char *dbname)
/* replace faked-up relcache entries with the real info */
RelationCacheInitializePhase2();
+ if (lockingOff)
+ LockDisable(true);
+
/*
* Set ourselves to the proper user id and figure out our postgres
- * user id. If we ever add security so that we check for valid
- * postgres users, we might do it here.
+ * user id.
*/
- setuid(geteuid());
- SetUserId();
+ if (bootstrap)
+ SetUserId(geteuid());
+ else
+ SetUserIdFromUserName(username);
- if (lockingOff)
- LockDisable(true);
+ setuid(geteuid());
/*
* Unless we are bootstrapping, double-check that InitMyDatabaseInfo()