Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2018 September PostgreSQL: Script to find all Objects of a Particular User

PostgreSQL: Script to find all Objects of a Particular User

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

In this post, I am sharing a script for getting the list of objects of a particular User (Owner of the Object) in PostgreSQL.
Generally, PostgreSQL DBAs are using this kind of script for auditing purpose and object tracking purpose.

Using the below script, you can get the list object for a particular user:

I used a ‘postgres’ default user in WHERE condition, which you can edit as per your user.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
select
nsp.nspname as SchemaName
,cls.relname as ObjectName
,rol.rolname as ObjectOwner
,case cls.relkind
when 'r' then 'TABLE'
when 'm' then 'MATERIALIZED_VIEW'
when 'i' then 'INDEX'
when 'S' then 'SEQUENCE'
when 'v' then 'VIEW'
when 'c' then 'TYPE'
else cls.relkind::text
end as ObjectType
from pg_class cls
join pg_roles rol
on rol.oid = cls.relowner
join pg_namespace nsp
on nsp.oid = cls.relnamespace
where nsp.nspname not in ('information_schema', 'pg_catalog')
and nsp.nspname not like 'pg_toast%'
and rol.rolname = 'postgres'
order by nsp.nspname, cls.relname

Sep 3, 2018Anvesh Patel
PostgreSQL: How to get the list of all Schemas of a database in PSQL?SQL Server: How to create Read Only Table?
Comments: 1
  1. bucket
    October 23, 2019 at 12:10 am

    with owned_objects as (
    select
    nsp.nspname as SchemaName
    ,cls.relname as ObjectName
    ,rol.rolname as ObjectOwner
    ,case cls.relkind
    when ‘r’ then ‘TABLE’
    when ‘m’ then ‘MATERIALIZED_VIEW’
    when ‘i’ then ‘INDEX’
    when ‘S’ then ‘SEQUENCE’
    when ‘v’ then ‘VIEW’
    when ‘c’ then ‘TYPE’
    else cls.relkind::text
    end as ObjectType
    from pg_class cls
    join pg_roles rol
    on rol.oid = cls.relowner
    join pg_namespace nsp
    on nsp.oid = cls.relnamespace
    where nsp.nspname not in (‘information_schema’, ‘pg_catalog’)
    and nsp.nspname not like ‘pg_toast%’
    and rol.rolname = ‘postgres’
    order by nsp.nspname, cls.relname
    )
    select
    case
    when oo.ObjectType = ‘TABLE’ then
    ‘alter table ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    when oo.ObjectType = ‘MATERIALIZED_VIEW’ then
    ‘alter materialized view ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    when oo.ObjectType = ‘INDEX’ then
    ‘alter index ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    when oo.ObjectType = ‘INDEX’ then
    ‘alter index ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    when oo.ObjectType = ‘SEQUENCE’ then
    ‘alter sequence ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    when oo.ObjectType = ‘VIEW’ then
    ‘alter view ‘ || oo.ObjectName || ‘ owner to NEW_ROLE;’
    else ‘dunno: ‘ || oo.ObjectType
    end
    from owned_objects oo
    ;

    an easy way to generate sql to change owners

    ReplyCancel

Leave a Reply Cancel reply

CAPTCHA
Refresh

*

Anvesh Patel
Anvesh Patel

Database Engineer

September 3, 2018 1 Comment PostgreSQL, PostgreSQL DBA ScriptAnvesh Patel, database, database research and development, Database Role, database user, dbrnd, pg_class, pg_roles, plpgsql, Postgres, Postgres Query, postgresql, PostgreSQL Administrator, PostgreSQL Error, PostgreSQL Monitoring, PostgreSQL Performance Tuning, PostgreSQL Programming, PostgreSQL Tips and Tricks
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....