邮政授予权限问题



我必须创建一个数据库[myDB]和一个自定义模式[mySchema]而不是公共模式。

我哪里做错了:

我创建了 3 个用户:user_admin、user_rw、user_ro,这些用户将被授予访问权限。

现在,我用我的超级用户登录:postgres [我在GCP上使用postgres 11]通过Cloud shell。

创建了我的数据库:myDB,我进入了myDB。我为所有 3 个用户访问触发了以下命令。

# for admin user
GRANT CONNECT ON DATABASE myDB TO user-admin;
GRANT USAGE ON SCHEMA mySchema TO user-admin ;
GRANT ALL PRIVILEGES ON SCHEMA mySchema TO user-admin ;
GRANT ALL ON ALL TABLES IN SCHEMA mySchema TO user-admin ;
GRANT ALL ON ALL SEQUENCES IN SCHEMA mySchema TO user-admin ;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA mySchema TO user-admin ;
ALTER DEFAULT PRIVILEGES IN SCHEMA mySchema GRANT ALL PRIVILEGES ON TABLES TO user-admin;
# for read write user
GRANT CONNECT ON DATABASE myDB TO user-rw;
GRANT USAGE ON SCHEMA mySchema TO user-rw ;
GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA mySchema TO user-rw ;
GRANT SELECT,UPDATE ON ALL SEQUENCES IN SCHEMA mySchema TO user-rw ;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA mySchema TO user-rw ;
ALTER DEFAULT PRIVILEGES IN SCHEMA mySchema GRANT SELECT,INSERT,UPDATE ON TABLES TO user-rw;

# for read only user 
GRANT CONNECT ON DATABASE myDB TO user-ro;
GRANT USAGE ON SCHEMA mySchema TO user-ro ;
GRANT SELECT ON ALL TABLES IN SCHEMA mySchema TO user-ro ;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA mySchema TO user-ro ;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA mySchema TO user-ro ;
ALTER DEFAULT PRIVILEGES IN SCHEMA mySchema GRANT SELECT ON TABLES TO user-ro;

到目前为止,我没有任何问题。

我在用户管理员的帮助下在 mySchema 中创建了表,这将在未来也可以这样工作。

其余两个用户将仅用于读取,另一个用于读写。

问题是我无法从其他用户(包括postgres,user-rw,user-ro(中看到创建的表,但只有用户管理员的所有者有权执行所有操作,例如创建和删除。

此外,从管理员用户创建表后,当我重新运行以下命令时,它给了我拒绝的权限。

GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA mySchema TO user-rw ;

请让我知道我做错了什么。

GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA mySchema TO user-rw ;

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA mySchema TO user-rw ;

第一个选项授予存在表的权限,第二个选项授予您存在表的权限以及我将在将来创建的新表,

但是他最好的方法是不要将此权限直接应用于用户,创建一个组并在那里授予权限并将组分配给用户,因此如果要首先删除用户,则需要删除创建的所有权限,然后再删除用户。

另外,从管理员用户创建表后,当我在下面重新运行时 命令,它给了我被拒绝的权限。

向用户授予对架构 mySchema 中所有表的选择、插入、更新权限 ;

关于此部分,请确保您使用管理员授予权限。

相关内容

  • 没有找到相关文章

最新更新