Ниже приведен список команд, которые, кажется, работают для создания нового пользователя (входа в систему) и предоставления доступа только для чтения к одной указанной таблице в PostgreSQL.
Предположим, что эти команды выполняются при входе в систему с достаточными привилегиями (т.е. при postgresвходе в систему при установке по умолчанию).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Теперь я хочу предоставить selectтаблицу tab_abcна базе данных db_xyz, так что здесь (база данных db_xyzвыбрана текущей через PgAdmin или что-то в этом роде):
grant select on tab_abc to user_name;
Вопрос: достаточно ли этого или должно быть больше грантов (база данных connect, usageможет быть)?
Эти команды, кажется, работают для меня, но моя установка по умолчанию имеет настройки безопасности по умолчанию. Какие дополнительные гранты я должен добавить, если администратор сервера настроил более строгую безопасность?
Похоже, мне не нужно connectни давать, ни usage- не подразумевается ли это при предоставлении select? Это всегда так?