Я хочу, чтобы все разработчики могли работать с кодом друг друга.Когда один человек создает таблицу, другие должны иметь возможность запрашивать ее напрямую без предоставления разрешений.
Я думал, что для этого нужно создать роль role_developers
, в которой все разработчики должны быть членамиэту роль, а затем выполните следующее:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO role_developer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO role_developer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON FUNCTIONS TO role_developer;
Я ожидаю, что установка этих привилегий по умолчанию, как указано выше, означает, что каждому новому экземпляру таких объектов в общедоступной схеме будут назначаться эти привилегии всем, кто является членомэта роль.
Однако даже после этого (вошел в систему как моя личная учетная запись пользователя, которая также является членом role_developer
), я обнаружил, что после создания новой таблицы мои коллеги нене могу SELECT
из него.
Так что, очевидно, я что-то упускаю.Я новичок в pgsql, хотя я опытный разработчик SQL Server, что, очевидно, омрачает мою точку зрения.