|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
Доброго времени суток! Решил с помощью ALTER DEFAULT PRIVILEGES выдать право select пользователю USER2 на все будущие таблицы всех пользователей в PUBLIC. Делаю из под postgres Код: sql 1. 2.
Захожу user2 проверяю, все нормально. Захожу user1, создаю таблицу, подключаюсь user2 и я не имею прав на просмотр. Если я из под user1 делаю Код: sql 1. 2.
То все нормально. При этом \ddp Права доступа по умолчанию Владелец Схема Тип Права доступа postgres public таблица user2=r/postgres user1 public таблица user2=r/user1 Получается, если у меня в бд 10 пользователей и мне нужно что бы они могли ЧИТАТЬ ВСЕ таблицы, мне нужно из под каждого пользователя выполнить alter default privileges для всех пользователей? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:59 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
Guzya мне нужно из под каждого пользователя выполнить alter default privileges для всех пользователей? Да. Можно сделать grant на роль и выдать эту роль пользователям вместо назначения каждому пользователю индивидуально. Но alter default privileges должен быть сделан для всех, кто может создавать соответствующие объекты. Потому что пока for role не указан - это означает лишь подразумевать текущего пользователя, а не любого пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 12:39 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
Понятно, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 12:47 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
Доброго дня! Вот вроде все должно быть понятно, но в голове не укладывается. Помогите, пожалуйста create role user1 login; create role user2 login; create role role_rw; create role role_ro; grant role_rw to user1; grant role_ro to user2; alter role user1 inherit; alter role user2 inherit; create schema schema1; И хочется мне, чтобы по умолчанию все пользователи, имеющие роль role_ro, могли читать все создаваемые таблицы в схеме. А с ролью role_rw - имели все права. Для этого есть alter default privileges В документации есть FOR ROLE и IN SCHEMA - что в моем случае нужно использовать? ALTER DEFAULT PRIVILEGES FOR ROLE role_ro in schema schema1 grant select ON tables to role_ro; ALTER DEFAULT PRIVILEGES FOR ROLE role_rw in schema schema1 grant all privileges ON tables to role_rw; ALTER DEFAULT PRIVILEGES IN SCHEMA schema1 GRANT select ON TABLES TO role_ro; ALTER DEFAULT PRIVILEGES IN SCHEMA schema1 GRANT all privileges ON TABLES TO role_rw; Или я изначально что-то упускаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2021, 16:33 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
kupalinka, for role - это кто будет создавать объекты. И for role есть всегда, не бывает alter default privileges для кого угодно. Если вы не указали for role - подразумевается тот, кто этот alter default privileges вызвал. Поэтому для каждого пользователя, кто будет здесь что-то создавать, добавляете по отдельному alter default privileges. in schema - это уже в зависимости от задачи. Если хотите выдавать автоматические права только в конкретной схеме - то указываете in schema. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2021, 17:02 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
Melkij, Melkijfor role - это кто будет создавать объекты. И for role есть всегда, не бывает alter default privileges для кого угодно. Если вы не указали for role - подразумевается тот, кто этот alter default privileges вызвал. т.е. т.к. создавать объекты в схеме будут только носители роли _rw, получится вот так? ALTER DEFAULT PRIVILEGES FOR ROLE role_rw in schema schema1 grant select ON tables to role_ro; ALTER DEFAULT PRIVILEGES FOR ROLE role_rw in schema schema1 grant all privileges ON tables to role_rw; MelkijПоэтому для каждого пользователя, кто будет здесь что-то создавать, добавляете по отдельному alter default privileges. А inherit не помогает наследовать права ролей? Несколько пугает перспектива по каждому пользователю проходить с alter, т.к. предполагается наличие множества схем и множества пользователей с разделением прав... Я просто сужу по опыту работы с терадатой. Там роли грантуются права на схему, пользователю грантуется роль. И все прокидывается прекрасно =) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2021, 19:27 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
kupalinka, если вы хотите чтобы система прав работала нормально создавать должен все админ от специального пользователя и выдавать права он же + default grants... >>А inherit не помогает наследовать права ролей? >>Несколько пугает перспектива по каждому пользователю проходить с alter, т.к. предполагается наличие множества схем и множества пользователей с разделением прав... если у вас много пользователей могут таблицы создавать то другого варианта у вас нет кроме как для всех делать alter default priviledges (что в общем не сложно если создание пользователя в хранимку завернуть которая сама все нужные права бы ставила). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2021, 20:07 |
|
ALTER DEFAULT PRIVILEGES - разъясните поведение.
|
|||
---|---|---|---|
#18+
kupalinka, Можно реализовать такую схему: - при подключении пользователи имеют возможность только DML-ить таблицы - для DDL-ов, пользователь должен сделать `SET ROLE master_of_universe;` (ну или как назовёте) - также можно заморочиться и сделать так, что пока пользователь может DDL-ы, ему недоступны DML-ы, чтобы не было желания оставаться на высоких привилегиях всегда. Тогда у вас все объекты будут иметь одного общего владельца и, соответственно, DEFAULT PRIVILEGES только ему нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2021, 23:34 |
|
|
start [/forum/topic.php?fid=53&msg=40056998&tid=1994109]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 394ms |
0 / 0 |