Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. SELECT nspname
  2. FROM pg_namespace;
  3.  
  4. psql -f multigrant.sql
  5.  
  6. DO $do$
  7. DECLARE
  8. sch text;
  9. BEGIN
  10. FOR sch IN SELECT nspname FROM pg_namespace
  11. LOOP
  12. EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO your_role $$, sch);
  13. END LOOP;
  14. END;
  15. $do$;
  16.  
  17. DO $do$
  18. DECLARE
  19. sch text;
  20. BEGIN
  21. FOR sch IN SELECT nspname FROM pg_namespace where nspname != 'pg_toast'
  22. and nspname != 'pg_temp_1' and nspname != 'pg_toast_temp_1'
  23. and nspname != 'pg_statistic' and nspname != 'pg_catalog'
  24. and nspname != 'information_schema'
  25. LOOP
  26. EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO your_role $$, sch);
  27. EXECUTE format($$ GRANT USAGE ON SCHEMA %I to your_role $$, sch);
  28. EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO your_role $$, sch);
  29. EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO backup_user $$, sch);
  30.  
  31. EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO your_role $$, sch);
  32. EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO your_role $$, sch);
  33. END LOOP;
  34. END;
  35. $do$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement