В PostgreSQL права задаются только на существующие объекты следующих типов: table (таблица), view (представление), sequence (последовательность), database (база данных), function (функция), procedural language (процедурный язык), schema (схема) и tablespace (табличное пространство). За исключение таблиц перед именами объектов обязательно указывается их тип. Ниже приведен список привилегий:
· ALL PRIVILEGES - все привилегии на указанный объект;
· CREATE - право на создание. Для базы данных это создание схем внутри ее. Для схем это создание новых объектов внутри ее. Для табличного пространства это создание таблиц, индексов и временных файлов внутри него;
· REFERENCES - право на создание внешний ключей;
· TRIGGER - право создания триггера на указанную таблицу;
· CONNECT - право на соединение с указанной базой данных;
· TEMPORARY, TEMP - право на создание временных таблиц;
· EXECUTE - право на выполнение функций;
· USAGE - право на использование указанного языка для написания функций. Для схемы это доступ к объектам внутри ее. Для последовательности это право использовать функции currval и nextval;
· SELECT - право на выборку;
· DELETE - право на удаление;
· INSERT - право на вставку;
· UPDATE - право на обновление.
-- все права на указанные базы данныхGRANT ALL PRIVILEGES ON DATABASE dbname1, dbname2 TO username WITH GRANT OPTION; -- право на выбор из двух представленийGRANT select ON VIEW view_name1, view_name2 TO public;