Обсуждение: Can't delete role because of unknown object

Поиск
Список
Период
Сортировка

Can't delete role because of unknown object

От
Craig Libscomb
Дата:
The following command:
DROP USER IF EXISTS jpate;

generates the following output:
ERROR:  role "jpate" cannot be dropped because some objects depend on it
DETAIL:  1 object in database products

It would be most helpful to know what object in the products database depends on the jpate role, but I am unable to find anything that even begins to offer a clue. What command will show me this mysterious object, please?

Thanks,
Craig

Re: Can't delete role because of unknown object

От
droletguillaume
Дата:
hi Craig, 

I think this thread could help you:

http://stackoverflow.com/questions/5408156/how-to-drop-a-postgresql-database-if-there-are-active-connections-to-it

Sent from Samsung Mobile


-------- Original message --------
From: Craig Libscomb
Date:04-22-2014 15:47 (GMT-05:00)
To: pgsql-general@postgresql.org
Subject: [GENERAL] Can't delete role because of unknown object

The following command:
DROP USER IF EXISTS jpate;

generates the following output:
ERROR:  role "jpate" cannot be dropped because some objects depend on it
DETAIL:  1 object in database products

It would be most helpful to know what object in the products database depends on the jpate role, but I am unable to find anything that even begins to offer a clue. What command will show me this mysterious object, please?

Thanks,
Craig

Re: Can't delete role because of unknown object

От
Raymond O'Donnell
Дата:
On 22/04/2014 20:47, Craig Libscomb wrote:
> The following command:
> DROP USER IF EXISTS jpate;
>
> generates the following output:
> ERROR:  role "jpate" cannot be dropped because some objects depend on it
> DETAIL:  1 object in database products
>
> It would be most helpful to know what object in the products database
> depends on the jpate role, but I am unable to find anything that even
> begins to offer a clue. What command will show me this mysterious
> object, please?

I'd hazard a guess that there is another role which is a member of this
one.... connect to the database using psql, and then \du will give you a
list of all roles - in the output from \du, look at the column "Member of".

HTH,

Ray.


--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie


Re: Can't delete role because of unknown object

От
Craig Libscomb
Дата:

On Tue, Apr 22, 2014 at 3:02 PM, droletguillaume <droletguillaume@gmail.com> wrote:

As far as I can tell, there are no connections open under this role. In fact, jpate has been gone for several months

SELECT usename
FROM pg_stat_activity
GROUP BY usename;
  usename  
------------
 postgres
 log_write
 product_readonly
(3 rows)

What I am looking for is something along the lines of
SELECT object_name
FROM ????
WHERE object_owner = 'jpate';

So I can see what jpate owns.



 
-------- Original message --------
From: Craig Libscomb
Date:04-22-2014 15:47 (GMT-05:00)
Subject: [GENERAL] Can't delete role because of unknown object

The following command:
DROP USER IF EXISTS jpate;

generates the following output:
ERROR:  role "jpate" cannot be dropped because some objects depend on it
DETAIL:  1 object in database products

It would be most helpful to know what object in the products database depends on the jpate role, but I am unable to find anything that even begins to offer a clue. What command will show me this mysterious object, please?

Thanks,
Craig

Re: Can't delete role because of unknown object

От
Craig Libscomb
Дата:
On Tue, Apr 22, 2014 at 3:06 PM, Raymond O'Donnell <rod@iol.ie> wrote:
On 22/04/2014 20:47, Craig Libscomb wrote:
> The following command:
> DROP USER IF EXISTS jpate;
>
> generates the following output:
> ERROR:  role "jpate" cannot be dropped because some objects depend on it
> DETAIL:  1 object in database products
>
> It would be most helpful to know what object in the products database
> depends on the jpate role, but I am unable to find anything that even
> begins to offer a clue. What command will show me this mysterious
> object, please?

I'd hazard a guess that there is another role which is a member of this
one.... connect to the database using psql, and then \du will give you a
list of all roles - in the output from \du, look at the column "Member of".

All of the roles have {} under "member of", so I assume that means no members?
 

HTH,

Ray.


--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie

Re: Can't delete role because of unknown object

От
Tom Lane
Дата:
Craig Libscomb <craiglibscomb1972@gmail.com> writes:
> The following command:
> DROP USER IF EXISTS jpate;

> generates the following output:
> ERROR:  role "jpate" cannot be dropped because some objects depend on it
> DETAIL:  1 object in database products

> It would be most helpful to know what object in the products database
> depends on the jpate role, but I am unable to find anything that even
> begins to offer a clue. What command will show me this mysterious object,
> please?

You need to connect to that database and try the DROP USER from there.
It's not possible to produce very much info about the problematic
object when not connected to its database.  (I suppose we could tell
you the object kind, ie table/function/etc, but not more than that.)

            regards, tom lane


Re: Can't delete role because of unknown object

От
Raymond O'Donnell
Дата:
On 22/04/2014 21:26, Craig Libscomb wrote:
> On Tue, Apr 22, 2014 at 3:06 PM, Raymond O'Donnell <rod@iol.ie
> <mailto:rod@iol.ie>> wrote:
>
>     On 22/04/2014 20:47, Craig Libscomb wrote:
>     > The following command:
>     > DROP USER IF EXISTS jpate;
>     >
>     > generates the following output:
>     > ERROR:  role "jpate" cannot be dropped because some objects depend
>     on it
>     > DETAIL:  1 object in database products
>     >
>     > It would be most helpful to know what object in the products database
>     > depends on the jpate role, but I am unable to find anything that even
>     > begins to offer a clue. What command will show me this mysterious
>     > object, please?
>
>     I'd hazard a guess that there is another role which is a member of this
>     one.... connect to the database using psql, and then \du will give you a
>     list of all roles - in the output from \du, look at the column
>     "Member of".
>
>
> All of the roles have {} under "member of", so I assume that means no
> members?

Yes, that's correct. 'Twas worth a look. :-)

Ray.


--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie


Re: Can't delete role because of unknown object

От
Igor Neyman
Дата:

From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Craig Libscomb
Sent: Tuesday, April 22, 2014 4:27 PM
To: pgsql-general@postgresql.org
Subject: Re: [GENERAL] Can't delete role because of unknown object

On Tue, Apr 22, 2014 at 3:06 PM, Raymond O'Donnell <rod@iol.ie> wrote:
On 22/04/2014 20:47, Craig Libscomb wrote:
> The following command:
> DROP USER IF EXISTS jpate;
>
> generates the following output:
> ERROR:  role "jpate" cannot be dropped because some objects depend on it
> DETAIL:  1 object in database products
>
> It would be most helpful to know what object in the products database
> depends on the jpate role, but I am unable to find anything that even
> begins to offer a clue. What command will show me this mysterious
> object, please?
I'd hazard a guess that there is another role which is a member of this
one.... connect to the database using psql, and then \du will give you a
list of all roles - in the output from \du, look at the column "Member of".

All of the roles have {} under "member of", so I assume that means no members?
 

HTH,

Ray.


You could try:

SELECT C.relname, C.reltype
FROM pg_class C, pg_authid O
WHERE O.rolname = 'jpate'
AND C.relowner = O.oid;

Regards,
Igor Neyman


Re: Can't delete role because of unknown object

От
Craig Libscomb
Дата:
On Tue, Apr 22, 2014 at 3:39 PM, Igor Neyman <ineyman@perceptron.com> wrote:
>
>
> From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Craig Libscomb
> Sent: Tuesday, April 22, 2014 4:27 PM
> To: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] Can't delete role because of unknown object
>
> On Tue, Apr 22, 2014 at 3:06 PM, Raymond O'Donnell <rod@iol.ie> wrote:
> On 22/04/2014 20:47, Craig Libscomb wrote:
>> The following command:
>> DROP USER IF EXISTS jpate;
>>
>> generates the following output:
>> ERROR:  role "jpate" cannot be dropped because some objects depend on it
>> DETAIL:  1 object in database products
>>
>> It would be most helpful to know what object in the products database
>> depends on the jpate role, but I am unable to find anything that even
>> begins to offer a clue. What command will show me this mysterious
>> object, please?
> I'd hazard a guess that there is another role which is a member of this
> one.... connect to the database using psql, and then \du will give you a
> list of all roles - in the output from \du, look at the column "Member of".
>
> All of the roles have {} under "member of", so I assume that means no members?
>  
>
> HTH,
>
> Ray.
>
>
> You could try:
>
> SELECT C.relname, C.reltype
> FROM pg_class C, pg_authid O
> WHERE O.rolname = 'jpate'
> AND C.relowner = O.oid;

Dummy me, I was connected to the wrong database.

This returned 0 rows though. Even tried it with a different user. But punching in postgres gave me lots of info. Thanks for the hint.

>
> Regards,
> Igor Neyman
>