2016-05-12 3 views
3

Глядя на некоторые таблицы в pgAdmin, я могу увидеть определения таблицы со следующими утверждениямиНужно ли мне указывать ВСЕ для ВЛАДЕЛЬЦА таблицы в базе данных PostgreSQL 9.3?

ALTER TABLE table_name 
    OWNER TO user_name; 
GRANT ALL ON TABLE table_name TO user_name; 

Другие таблицы в той же базе данных опускаем второй GRANT ALL заявление, и я подозреваю, что это излишним, учитывая, что user_name это уже OWNER от table_name.

В этом случае избыточно GRANT ALL, и если да, то могу ли я удалить его определение (с вкладки table_name> Свойства> Привилегии)?

Благодаря

ответ

-1

Вероятно нет, но смотри ниже ,

Владельцы по умолчанию имеют полные права на таблицу и отмечают, что они также могут предоставлять права на свои собственные таблицы. Это не зависит от прав, предоставляемых общественности. См .:

chris=> create table footest(id int); 
CREATE TABLE 
chris=> revoke all on footest from public; 
REVOKE 
chris=> insert into footest values (1); 
INSERT 0 1 
chris=> revoke all on footest from chris; 
REVOKE 
chris=> insert into footest values (1); 
ERROR: permission denied for relation footest 
chris=> grant all on footest to chris; 
GRANT 
chris=> 

Таким образом, если вы уже не отозвали разрешения, которые вам не нужны, чтобы предоставить их.

-1

1) «Объект может быть отнесен к новому владельцу с помощью команды ALTER соответствующего типа для объекта, например, ALTER TABLE Суперпользователей всегда могут это сделать;. обычные роли может сделать это только если они обатекущего владельцем объекта (или член роли владеющей) ичлена новой владеющим роль. "

2) «Написание ALL вместо определенной привилегии предоставляет все привилегии, соответствующие типу объекта».

Таким образом, это зависит от типа пользователя, как указано выше.

Вы можете GRANT конкретные привилегии EG ВЫБРАТЬ и т.д., используя вспомогательный набор GRANT. Более подробную информацию о Грант можно найти во второй ссылке Postgresql GRANT - определить привилегии доступа

Все лучшее

Ref 1 5.6. Postgresql Privileges

Postgresql GRANT -- define access privileges Ссылка 2