Skip to content

Instantly share code, notes, and snippets.

@the-teacher
Created October 16, 2015 08:18
Show Gist options
  • Save the-teacher/505ff06a525286afdcd4 to your computer and use it in GitHub Desktop.
Save the-teacher/505ff06a525286afdcd4 to your computer and use it in GitHub Desktop.
sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev postgresql-server-dev-9.1 pgadmin3 -y
sudo -u postgres psql postgres
CREATE ROLE "ADMIN_NAME" PASSWORD 'qwerty' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
\q
sudo /etc/init.d/postgresql restart
psql postgres ADMIN_NAME
SELECT version();
SELECT datname FROM pg_database;
\q
@hakushu-publishing
Copy link

CREATE OR REPLACE VIEW view_all_grants AS
SELECT
  use.usename as subject,
  nsp.nspname as namespace,
  c.relname as item,
  c.relkind as type,
  use2.usename as owner,
  c.relacl,
  (use2.usename != use.usename and c.relacl::text !~ ('({|,)' || use.usename || '=')) as public
FROM
  pg_user use
  cross join pg_class c
  left join pg_namespace nsp on (c.relnamespace = nsp.oid)
  left join pg_user use2 on (c.relowner = use2.usesysid)
WHERE
  c.relowner = use.usesysid or
  c.relacl::text ~ ('({|,)(|' || use.usename || ')=')
ORDER BY
  subject,
  namespace,
  item
; 

SELECT * FROM view_all_grants WHERE subject = 'rails';

@hakushu-publishing
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment