169 похожих чатов

Hello everyone, I have 3 users in my database: A_User, B_User.

And postgres user by default.

The authorizations I give are as follows:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO A_User;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO A_User;

Here is the result I did not expect:
1.A_User can access existing tables.
2.A_User can access the new tables created by postgres user.
3.BUT A_User cannot access the new tables created by B_User.

Shouldn't A_User have access to the new tables created by B_User?

4 ответов

7 просмотров

Here is what the documentation is saying : target_role Change default privileges for objects created by the target_role, or the current role if unspecified. https://www.postgresql.org/docs/current/sql-alterdefaultprivileges.html You have altered the default privileges while connected with role postgres. Therefore the changes are only applied for tables owned by the role postgres.

Sercan- Автор вопроса
Stefanie Janine Stölting
Here is what the documentation is saying : target_...

Then the authorizations I gave with “ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO A_User;” do not cover all objects under that schema. It only covers the objects owned by the postgres user? So, for READ users can access each new table, while authorizing my user with DDL authorization “ALTER DEFAULT PRIVILEGES FOR ROLE B_User GRANT SELECT ON TABLES TO A_User;” ?

Sercan
Then the authorizations I gave with “ALTER DEFAULT...

As documented, all tables for the role that executed the ALTER DEFAULT PRIVILEGES, or for the given role name. And you can create a role without login and use it like a group. If you alter default privileges for these roles, members of that group role have the rights inherited.

Sercan- Автор вопроса
Stefanie Janine Stölting
As documented, all tables for the role that execut...

Thank you, I learned what I thought I knew. So, do these two codes work the same for A_User to access the new tables created by B_User: SET ROLE B_User; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO A_User; and ALTER DEFAULT PRIVILEGES FOR ROLE B_User IN SCHEMA public GRANT SELECT ON TABLES TO A_User;

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта