Ниже приведен список команд, которые, кажется, работают для создания нового пользователя (входа в систему) и предоставления доступа только для чтения к одной указанной таблице в 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
? Это всегда так?
источник