Postgres: To drop a user

 REASSIGN OWNED BY username TO new_owner;

DROP OWNED BY username;

DROP USER username;



REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA ctlgadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ctlgadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ctlgadmin FROM pnm300;

  REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA ctlgadmin2 FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ctlgadmin2 FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ctlgadmin2 FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA ctlgadmin2 FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ctlgadmin2 FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ctlgadmin2 FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA cfaudit FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA cfaudit FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA cfaudit FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA cmsadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA cmsadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA cmsadmin FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA cfadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA cfadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA cfadmin FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA grpadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA grpadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA grpadmin FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA invadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA invadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA invadmin FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA seadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA seadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA seadmin FROM pnm300;


 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA ordadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ordadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ordadmin FROM pnm300;

 REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA cmtadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA cmtadmin FROM pnm300;

REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA cmtadmin FROM pnm300;

revoke usage on schema cfadmin from pnm300;

revoke usage on schema cmtadmin from pnm300;

revoke usage on schema ordadmin from pnm300;

revoke usage on schema invadmin from pnm300;

revoke usage on schema grpadmin from pnm300;

revoke usage on schema ctlgadmin from pnm300;

revoke usage on schema ctlgadmin2 from pnm300;

revoke usage on schema seadmin from pnm300;

revoke usage on schema cmsadmin from pnm300;

revoke usage on schema cfaudit from pnm300;

revoke connect on database cfprod from  pnm300;


DROP USER pnm300;




To get list of objects depending on a user:

SELECT n.nspname AS schema_name, c.relname AS object_name, CASE c.relkind WHEN 'r' THEN 'Table' WHEN 'v' THEN 'View' WHEN 'm' THEN 'Materialized View' WHEN 'i' THEN 'Index' WHEN 'S' THEN 'Sequence' WHEN 'f' THEN 'Foreign Table' WHEN 'p' THEN 'Partitioned Table' WHEN 'I' THEN 'Partitioned Index' END AS object_typeFROM pg_class cJOIN pg_namespace n ON n.oid = c.relnamespaceJOIN pg_roles r ON r.oid = c.relownerWHERE r.rolname = 'your_username' -- Replace with the actual usernameORDER BY schema_name, object_type, object_name;



SELECT n.nspname AS schema_name, p.proname AS function_nameFROM pg_proc pJOIN pg_namespace n ON n.oid = p.pronamespaceJOIN pg_roles r ON r.oid = p.proownerWHERE r.rolname = 'your_username' -- Replace with the actual usernameORDER BY schema_name, function_name;



SELECT n.nspname AS schema_name, d.defaclobjtype AS object_type, d.defaclacl AS default_privilegesFROM pg_default_acl dJOIN pg_namespace n ON n.oid = d.defaclnamespaceJOIN pg_roles r ON r.oid = d.defaclroleWHERE r.rolname = 'your_username' -- Replace with the actual usernameORDER BY schema_name, object_type;




Comments

Popular posts from this blog

Postgres: Clean up stopped replication slot