PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Предоставете всички по конкретна схема в db на групова роля в PostgreSQL

Намерихте стенограмата за задаване на привилегии за всички съществуващи таблици в дадена схема. Ръководството пояснява:

(но имайте предвид, че ALL TABLES счита се, че включва прегледи ичужди масии ).

Удебелен акцент мой. serial колоните се изпълняват с nextval() на последователност като колона по подразбиране и, цитирайки ръководството:

За последователности тази привилегия позволява използването на currval и nextval функции.

Така че, ако има serial колони, ще искате също да предоставите USAGE (или ALL PRIVILEGES ) напоследователности

GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;

Забележка:колоните за идентичност в Postgres 10 или по-нова версия използват имплицитни последователности, които не изискват допълнителни привилегии. (Помислете за надграждане на serial колони.)

Какво ще кажете за ново обекти?

Ще се интересувате и от DEFAULT PRIVILEGES за потребители или схеми:

ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE          ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;

Това автоматично задава привилегии за обекти, създадени в бъдеще, но не и за вече съществуващи обекти.

Привилегиите по подразбиране са само прилага се към обекти, създадени от целевия потребител (FOR ROLE my_creating_role ). Ако тази клауза е пропусната, по подразбиране текущият потребител изпълнява ALTER DEFAULT PRIVILEGES . За да бъда изричен:

ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;

Имайте предвид също, че всички версии на pgAdmin III имат тънка грешка и дисплей привилегии по подразбиране в SQL панела, дори ако не се прилагат към текущата роля. Не забравяйте да коригирате FOR ROLE клауза ръчно при копиране на SQL скрипта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ден на разработчиците на PostgreSQL в Прага 2016 г

  2. PostgreSQL конвертира колони в редове? Транспониране?

  3. Стойност Грешка при импортиране на данни в postgres таблица с помощта на psycopg2

  4. Логическа репликация на PostgreSQL

  5. Atomic UPDATE .. SELECT в Postgres