From: | jkm(at)patriot(dot)net (Kevin McFadden) |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: FINAL: Multi-User PostgreSQL usage SECURITY |
Date: | 2001-09-14 20:22:31 |
Message-ID: | b23c2dba.0109141222.3c1ee64a@posting.google.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
""Mike Rogers"" <temp6453(at)hotmail(dot)com> wrote in message news:OE658VnurbAMeMfHUye00004188(at)hotmail(dot)com(dot)(dot)(dot)
> Greets all;
> So this issue was raised quite some time ago by many many people and
> seems to contantly be asked by new PostgreSQL users. I never seem to find
> any real answers for it.
>
> I am running a multi-user system and wish to have 10 user accounts with
> 10 different corresponding databases. I do not want user 'a' to be able to
> access user 'b's database- Only their own 'a' database. It really
> shouldn't be this difficult. I realize that I can revoke access to all
> users on the 'a' tables, but then user B can still create tables within user
> A's database.
Hi Mike,
I've just spent the last hour trying to figure this out for myself.
Coming from Oracle, user management in PG is quite a mess, but when
they add the schema stuff in it should be easier.
I'm not really sure why no one has posted a concise answer in the past
(half of those 60 minutes were mostly spent searching groups.google),
so I hope this does what everyone has been hoping for.
What I tried to accomplish was to deny users the ability to enter
other databases and to also deny them access to template1 (why should
general non-admin users have access to this in the first place?) It
should also allow the postgres user access to all (for backups,
etc...)
------------------------------------------------------
pg_hba.conf:
local all reject
local sameuser password
host sameuser 127.0.0.1 255.255.255.255 password
host all 127.0.0.1 255.255.255.255 ident postgres
pg_ident.conf:
#MAP IDENT POSTGRES USERNAME
postgres postgres postgres
-------------------------------------------------------
- The first line restricts all local access. It may not be necessary,
but it shouldn't hurt.
- The second line allows userA to connect to DB userA.
- The third line provides tcp/ip access.
- The fourth line provides the backdoor Tom Lane has mentioned. It
also allows access to template1 for postgres. It requires that identd
is running check inetd.conf or xinetd.d/identd. MS users may be SOL.)
It also requires you to set PGHOST=localhost in your environment.
(You can't do identd checking with local, unfortunately.)
Kevin
PS Users were created with the CREATEDB option which was removed once
the database was created.
From | Date | Subject | |
---|---|---|---|
Next Message | GB Clark II | 2001-09-15 13:04:34 | Re: Can't get postmaster to restart after removing WAL files |
Previous Message | Tauren Mills | 2001-09-14 15:40:06 | Re: Problem with database: FATAL 1: cannot find attribute 24 of relation |