Обсуждение: BUG #12765: Postgresql ROLE dropped, but its not dropped from pg_roles
BUG #12765: Postgresql ROLE dropped, but its not dropped from pg_roles
От
vivek.singh@rackspace.com
Дата:
The following bug has been logged on the website:
Bug reference: 12765
Logged by: vivek singh
Email address: vivek.singh@rackspace.com
PostgreSQL version: 9.3.5
Operating system: CentOS release 6.5
Description:
Postgresql ROLE dropped, but its not dropped from pg_roles view. rolconfig
column of pg_roles still shows the dropped role for associated user.
Bug reproduction:
=================================
postgres=# CREATE ROLE role1;
CREATE ROLE
postgres=# CREATE USER user1;
CREATE ROLE
postgres=# ALTER ROLE user1 SET ROLE TO role1;
ALTER ROLE
postgres=# \du+
List of roles
Role name | Attributes | Member of |
Description
-----------+------------------------------------------------+-----------+-------------
postgres | Superuser, Create role, Create DB, Replication | {} |
role1 | Cannot login | {} |
user1 | | {} |
postgres=# \x
Expanded display is on.
postgres=# SELECT * FROM pg_roles WHERE rolname ='user1';
-[ RECORD 1 ]--+-------------
rolname | user1
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
rolcatupdate | f
rolcanlogin | t
rolreplication | f
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolconfig | {role=role1}
oid | 24861
postgres=# DROP ROLE role1 ;
DROP ROLE
postgres=# \x
Expanded display is off.
postgres=# \du+
List of roles
Role name | Attributes | Member of |
Description
-----------+------------------------------------------------+-----------+-------------
postgres | Superuser, Create role, Create DB, Replication | {} |
user1 | | {} |
postgres=# \x
Expanded display is on.
postgres=# SELECT * FROM pg_roles WHERE rolname ='user1';
-[ RECORD 1 ]--+-------------
rolname | user1
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
rolcatupdate | f
rolcanlogin | t
rolreplication | f
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolconfig | {role=role1}
oid | 24861
postgres=# SELECT version();
-[ RECORD 1
]---------------------------------------------------------------------------------------------------------
version | PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc
(GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit
postgres=#
Re: BUG #12765: Postgresql ROLE dropped, but its not dropped from pg_roles
От
David G Johnston
Дата:
vivek.singh wrote > postgres=# ALTER ROLE user1 SET ROLE TO role1; This does not do what it is you think it does... In this statement the word "role" following SET is interpreted as an identifier, specifically a GUC/configuration-variable. It is not the command/keyword ROLE as it is in the first part (ALTER ROLE). See: http://www.postgresql.org/docs/9.4/static/sql-alterrole.html Custom user variables are allowed to be created and this is what you accomplished. You likely meant to issue: GRANT role1 TO user1; David J. -- View this message in context: http://postgresql.nabble.com/BUG-12765-Postgresql-ROLE-dropped-but-its-not-dropped-from-pg-roles-tp5837714p5837720.html Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.