我有以下角色一個PostgreSQL(9.3.5)集羣:(前兩個分別條目時動態創建新的用戶都被添加到應用程序)的PostgreSQL 9.3.5數字角色名
dochazka-test=> \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+------------
1 | | {admin}
2 | | {passerby}
active | Cannot login | {everyone}
admin | Cannot login | {everyone}
dochazka | | {admin}
everyone | Cannot login | {}
inactive | Cannot login | {everyone}
passerby | Cannot login | {everyone}
postgres | Superuser, Create role, Create DB, Replication | {}
正如您所看到的,「dochazka」和「1」角色都屬於「admin」角色,屬於「everyone」角色。所有角色都設置爲INHERIT。
「everyone」角色對模式「public」中的所有表,函數和序列擁有所有權限。
正如所料,當我以用戶「dochazka」身份連接時,我可以在數據庫的表上運行SELECTs。
$ psql -U 1 dochazka-test
Password for user 1:
psql (9.3.5)
Type "help" for help.
dochazka-test=> select * from employees;
ERROR: permission denied for relation employees
難道是PostgreSQL有與數字角色名一個根本性的問題:然而,當我連接到相同的數據庫用戶「1」,我不能運行相同的SELECT?
舉行新聞 - 我看到'dochazka'角色獲得相同的權限被拒絕的錯誤!對不起,也許這是一條紅鯡魚。 – smithfarm 2014-12-05 15:07:54
還包括'select current_user;'的結果 - 您可能會以guest身份登錄。 – 2014-12-05 15:10:00