组角色在PostgreSQL中不起作用?
我在pgadmin中创建了几个登录和组角色。然后,我将这些登录角色添加到各自的组角色中。然后,我为这些组角色授予数据库的登录权限以及其他必需的权限 但连接到数据库失败,用户没有连接权限 然后我直接向pgsql中的登录角色授予登录权限,因为pgadmin不允许我向登录角色添加权限,只允许向组角色添加权限 现在,用户可以连接到数据库,但在我将权限直接授予登录角色之前,仍然会出现各种权限错误 这是PostgreSQL(针对Windows的V9.4.5)中的一个bug,还是这里发生了什么?我还尝试使用pgsql而不是pgadmin向组角色添加权限,结果相同组角色在PostgreSQL中不起作用?,postgresql,Postgresql,我在pgadmin中创建了几个登录和组角色。然后,我将这些登录角色添加到各自的组角色中。然后,我为这些组角色授予数据库的登录权限以及其他必需的权限 但连接到数据库失败,用户没有连接权限 然后我直接向pgsql中的登录角色授予登录权限,因为pgadmin不允许我向登录角色添加权限,只允许向组角色添加权限 现在,用户可以连接到数据库,但在我将权限直接授予登录角色之前,仍然会出现各种权限错误 这是PostgreSQL(针对Windows的V9.4.5)中的一个bug,还是这里发生了什么?我还尝试使用p
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;
上面的语句并没有授予用户连接数据库的权限,但下面的语句却授予用户连接数据库的权限
GRANT CONNECT ON DATABASE db TO user_l;
然后,对于函数和其他需要特权的对象,问题会重复出现。向我们展示用于创建角色的SQL语句、用户以及如何授予他们权限。“然后我授予这些组角色登录特权…”PostgreSQL没有GRANT login语句。不过,它确实有GRANT CONNECT,这似乎与错误消息有关。我已将pgadmin报告的相关sql语句添加到问题中。