Thread: [general] Permissions

[general] Permissions

From
Travis Bauer
Date:
How do I set up my pg_hba.conf file to allow user "a" to only
have access to databases x, y, and z; and user "b" to only have
access to databases m, n, and o?  The pgident authentication
mechanism looks like the best candidate, but it does not seem
to quite meet the requirements.

Thanks,


--
----------------------------------------------------------------
Travis Bauer | CS Grad Student | IU |www.cs.indiana.edu/~trbauer
----------------------------------------------------------------

Re: [general] Permissions

From
Bruce Momjian
Date:
> How do I set up my pg_hba.conf file to allow user "a" to only
> have access to databases x, y, and z; and user "b" to only have
> access to databases m, n, and o?  The pgident authentication
> mechanism looks like the best candidate, but it does not seem
> to quite meet the requirements.

You have separate lines for databases x, y, z and m, n, and o.  You
can't use 'trust' because that doesn't really know the user is who he
says he is.  You can use secondary password files to specific users.


--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [general] Permissions

From
Jeff Davis
Date:
PostgreSQL has, it seems, a somewhat weak permissions system, although it
definately gets the job done.

What you can do is have a seperate pg_hba.conf entry for every user/database
combination you would like to be able to connect. To make this work, make a
seperate password file for each user using pg_passwd. Lets say you call two
files a_passwd and b_passwd (in accordance with your example), then make the
lines:

local    x    crypt a_passwd
local    y    crypt a_passwd
local    z    crypt a_passwd
local    m    crypt b_passwd
local    n    crypt b_passwd
local    o    crypt b_passwd

Do not make a password record in a_passwd for b, and do not make a record in
b_passwd for a. Make sure to put the *_passwd files in the same directory as
pg_hba.conf (where they will be found).

Note: I did not actually try this, as that would require changing around all
of my permissions for my database. It should work, however. You can also make
these host-based lines in order to allow connections from another host.

Regards,
    Jeff Davis

On Sunday 11 November 2001 09:12 pm, you wrote:
> How do I set up my pg_hba.conf file to allow user "a" to only
> have access to databases x, y, and z; and user "b" to only have
> access to databases m, n, and o?  The pgident authentication
> mechanism looks like the best candidate, but it does not seem
> to quite meet the requirements.
>
> Thanks,

Re: [general] Permissions

From
Travis Bauer
Date:
Thank you.  This worked.  In testing it out, I noticed that postgres only
considers the first eight charaters of the password.  So

abcdefghijklm
abcdefghmlkji

are considered the same by postgres.  Is that correct?

Travis

On Monday 12 November 2001 01:01, Jeff Davis enlightened me by saying:
> PostgreSQL has, it seems, a somewhat weak permissions system, although it
> definately gets the job done.
>
> What you can do is have a seperate pg_hba.conf entry for every
> user/database combination you would like to be able to connect. To make
> this work, make a seperate password file for each user using pg_passwd.
> Lets say you call two files a_passwd and b_passwd (in accordance with your
> example), then make the lines:
>
 . . .

Re: [general] Permissions

From
Tom Lane
Date:
Travis Bauer <trbauer@indiana.edu> writes:
> Thank you.  This worked.  In testing it out, I noticed that postgres only
> considers the first eight charaters of the password.

Not Postgres per se ... on most platforms the crypt() library routine
works that way.

            regards, tom lane

Re: [general] Permissions

From
Jeff Davis
Date:
On Monday 12 November 2001 03:16 pm, you wrote:
> Thank you.  This worked.  In testing it out, I noticed that postgres only
> considers the first eight charaters of the password.  So
>
> abcdefghijklm
> abcdefghmlkji
>
> are considered the same by postgres.  Is that correct?

Well... sort of. It isn't so much Postgres as crypt(). crypt() only hashes
the first 8 characters. I wonder if postgres supports md5 encryption instead?
md5 is considered more secure and allows for longer passwords.

Regards,
    Jeff

>
> Travis
>
> On Monday 12 November 2001 01:01, Jeff Davis enlightened me by saying:
> > PostgreSQL has, it seems, a somewhat weak permissions system, although it
> > definately gets the job done.
> >
> > What you can do is have a seperate pg_hba.conf entry for every
> > user/database combination you would like to be able to connect. To make
> > this work, make a seperate password file for each user using pg_passwd.
> > Lets say you call two files a_passwd and b_passwd (in accordance with
> > your example), then make the lines:
>
>  . . .
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

Re: [general] Permissions

From
Bruce Momjian
Date:
> On Monday 12 November 2001 03:16 pm, you wrote:
> > Thank you.  This worked.  In testing it out, I noticed that postgres only
> > considers the first eight charaters of the password.  So
> >
> > abcdefghijklm
> > abcdefghmlkji
> >
> > are considered the same by postgres.  Is that correct?
>
> Well... sort of. It isn't so much Postgres as crypt(). crypt() only hashes
> the first 8 characters. I wonder if postgres supports md5 encryption instead?
> md5 is considered more secure and allows for longer passwords.

7.2 will have MD5, and in all interfaces, including jdbc and odbc.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: [general] Permissions

From
Jean-Michel POURE
Date:
At 16:00 12/11/01 -0800, you wrote:
>Well... sort of. It isn't so much Postgres as crypt(). crypt() only hashes
>the first 8 characters. I wonder if postgres supports md5 encryption instead?
>md5 is considered more secure and allows for longer passwords.

7.2 does.