Curious case of the unstoppable user

From: Thom Brown <thom(at)linux(dot)com>
To: PGSQL Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Curious case of the unstoppable user
Date: 2011-03-29 18:44:51
Message-ID: AANLkTin9kX1U-Krhmpckg95vjksGO1mR6t1Ng1pc04XE@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi all,

I've just set up a test user, revoked all access from them to a
database, then tried to connect to that database and it let me in.
When I try it all from scratch, it works correctly.

Here's the set running correctly:

postgres=# CREATE DATABASE testdb;
CREATE DATABASE
postgres=# CREATE ROLE testrole;
CREATE ROLE
postgres=# REVOKE ALL ON DATABASE testdb FROM testrole CASCADE;
REVOKE
postgres=# \c testdb testrole
FATAL: role "testrole" is not permitted to log in
Previous connection kept

But now if I try something similar with an existing user and existing
database, it doesn't work:

postgres=# REVOKE ALL ON DATABASE stuff FROM meow CASCADE;
REVOKE
postgres=# \c stuff meow
You are now connected to database "stuff" as user "meow".

So, I'm overlooking something. Could someone tell me what it is? I
bet it's something obvious. I'm using 9.1dev if it's relevant.

Thanks

--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Derrick Rice 2011-03-29 18:54:09 Re: What could keep a connection / query alive?
Previous Message Geoffrey Myers 2011-03-29 18:34:41 UTF8 conversion revisited