我有以下角色一个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