组角色在PostgreSQL中不起作用?

时间:2015-10-18 08:58:32

标签: postgresql

我在pgadmin中创建了几个登录和组角色。然后,我将这些登录角色添加到各自的组角色中。然后,我将这些组角色的登录权限授予数据库以及其他所需的权限。

但是连接到数据库失败了"用户没有CONNECT权限"。

然后我将登录权限直接授予pgsql中的登录角色,因为pgadmin不允许我为登录角色添加权限,只添加组角色。

现在,用户可以连接到数据库,但在我直接向登录角色授予权限之前,仍然会收到各种权限错误。

这是PostgreSQL中的一个错误(适用于Windows的v 9.4.5),或者这里发生了什么?我还尝试使用pgsql而不是pgadmin为组角色添加权限,结果相同。

CREATE ROLE user_g
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

CREATE ROLE user_l LOGIN
  ENCRYPTED PASSWORD 'md5...'
  NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT user_g TO user_l;

GRANT ALL ON DATABASE db TO postgres;
GRANT CONNECT ON DATABASE db TO user_g;
REVOKE ALL ON DATABASE db FROM public;

以上语句不提供user_l权限来连接数据库,但是以下是。

GRANT CONNECT ON DATABASE db TO user_l;

然后问题是函数和其他需要特权的事情重复出现。

0 个答案:

没有答案