Hi all,

I am working on an installer for my program that creates a postgres database and user (the installer is written in perl and runs as 'root'). I want to find a way to let the user set the password on the new database and have postgres actually ask for it without editing the default 'pg_hba.conf' file, if at all possible.

  I know how to set the password on the user:

CREATE USER "foo" WITH PASSWORD 'secret' CREATEDB NOCREATEUSER;

and from what I can tell there is no way to put a password on a database. I create the database using:

CREATE DATABASE "bar" OWNER "foo";

From what I read in the docs, this *should* limit access to the 'bar' database to only the 'postgres' and 'foo' (I can't find now where in the postgres docs I read that so I may be wrong).

  The problems are:

- Connections are limited to the matching system account ('foo' in this case) which is good, but it doesn't require the password to connect. - A normal user connected to another database can switch to the 'bar' database using '\c foo' without requiring a password.

  When I have played with the 'pg_hba.conf' file by adding the line:

# TYPE  DATABASE  USER      IP-ADDRESS  IP-MASK  METHOD
# Database administrative login by UNIX sockets
local   bar       foo                            md5
local   all       postgres                       ident sameuser

I find that when I try to connect to the DB 'bar' as the system user 'foo' I *do* get prompted for the password. However, when I try connecting as another user I get in without being prompted for a password at all.

  Any help with this would be much appreciated!

Madison

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
          Madison Kelly (Digimer)
   TLE-BU; The Linux Experience, Back Up
Main Project Page:  http://tle-bu.org
Community Forum:    http://forum.tle-bu.org
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to