From: | Mike Blackwell <mike(dot)blackwell(at)rrd(dot)com> |
---|---|
To: | Alexander Reichstadt <lxr(at)mac(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: pg_role vs. pg_shadow or pg_user |
Date: | 2012-03-14 21:12:22 |
Message-ID: | CANPAkgurdS1Q+Dug7n69CJFoRueFCKVHnw=SWfQViEQoLnYaQA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
You only get pg_shadow entries for roles that can login (rolcanlogin =
true).
CREATE ROLE defaults to NO LOGIN. CREATE USER defaults to LOGIN. See
http://www.postgresql.org/docs/9.1/interactive/sql-createrole.html
__________________________________________________________________________________
*Mike Blackwell | Technical Analyst, Distribution Services/Rollout
Management | RR Donnelley*
1750 Wallace Ave | St Charles, IL 60174-3401
Office: 630.313.7818
Mike(dot)Blackwell(at)rrd(dot)com
http://www.rrdonnelley.com
<http://www.rrdonnelley.com/>
* <Mike(dot)Blackwell(at)rrd(dot)com>*
On Wed, Mar 14, 2012 at 16:04, Alexander Reichstadt <lxr(at)mac(dot)com> wrote:
> Hi,
>
> in the documentation of 8.1 the concept of roles is outlined compared to
> users and groups at <
> http://www.postgresql.org/docs/8.1/static/user-manag.html>. I am running
> 9.1 and due to currently learning about the ins and outs of users and
> permissions in postgres as opposed to mysql, and because of needing to read
> system tables, I also read today that pg_shadow is the real table
> containing the users as opposed to pg_user which is only a view and one
> never displaying anything but **** for the password. I don't have the link
> where that was, but anyways, this lead me to check:
>
>
> PW=# select * FROM pg_catalog.pg_shadow;
> usename | usesysid | usecreatedb | usesuper | usecatupd | userepl |
> passwd | valuntil | useconfig
>
> ----------+----------+-------------+----------+-----------+---------+-------------------------------------+----------+-----------
> postgres | 10 | t | t | t | t |
> md5d63999e27600a80bb728cc0d7c2d6375 | |
> testa | 24761 | f | f | f | f |
> md52778dfab33f8a7197bce5dfaf596010f | |
> (2 rows)
>
> PW=# select * FROM pg_catalog.pg_roles;
> rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb |
> rolcatupdate | rolcanlogin | rolreplication | rolconnlimit | rolpassword |
> rolvaliduntil | rolconfig | oid
>
> ----------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+-------
> postgres | t | t | t | t | t
> | t | t | -1 | ******** |
> | | 10
> testa | f | t | f | f | f
> | t | f | -1 | ******** |
> | | 24761
> abcd | f | t | f | f | f
> | f | f | -1 | ******** |
> | | 24762
> testb | f | t | f | f | f
> | f | f | -1 | ******** |
> | | 24763
> (4 rows)
> ^
> PW=# select * FROM pg_catalog.pg_user;
> usename | usesysid | usecreatedb | usesuper | usecatupd | userepl |
> passwd | valuntil | useconfig
>
> ----------+----------+-------------+----------+-----------+---------+----------+----------+-----------
> postgres | 10 | t | t | t | t |
> ******** | |
> testa | 24761 | f | f | f | f |
> ******** | |
> (2 rows)
>
>
> Why is there a difference in these tables? Shouldn't pg_user, pg_shadow
> and pg_roles have entries where usename equals rolename and moreover should
> contain the same amount of entries?
>
>
> testb was created doing
>
> *create role testb with role testa*
> *
> *
> I was assuming that this would sort of clone the settings of testa into a
> new user testb. testa was created using "create user".
>
>
> Regards
> Alex
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-03-14 21:52:44 | Re: pg_role vs. pg_shadow or pg_user |
Previous Message | Alexander Reichstadt | 2012-03-14 21:04:20 | pg_role vs. pg_shadow or pg_user |