小编And*_*e M的帖子

Postgres,命名模式与公共模式的好处?

我是 Postgres 的新手,我试图了解模式如何适应一切以及非“公共”模式的好处是什么。例如,它是否提供安全性、访问控制优势或其他优势?

我正在使用的设置是 postgres 拥有数据库和表,但向另一个用户授予选择、插入、更新和删除权限。在“公共”模式与“myotherschema”中创建表会有很大区别吗?

schema postgresql

11
推荐指数
1
解决办法
1万
查看次数

如何允许用户访问 Postgres 中的非拥有对象?

我正在创建一个 pre-prod Postgres 数据库,并希望确保访问用户具有有限的访问权限。

我想以这样的方式设置表的访问用户不能CREATEDROPALTER对象。目前,我可以看到将所有权更改为另一个用户的唯一方法,例如postgres然后以某种方式仅授予所需的权限:

 ALTER TABLE mytable SET OWNER TO postgres;
 REVOKE connect ON DATABASE mydatabase FROM PUBLIC;
 GRANT USAGE, SELECT, UPDATE ON ALL TABLES IN SCHEMA public TO dbuser;
 GRANT connect ON DATABASE mydatabase TO dbuser;
Run Code Online (Sandbox Code Playgroud)

问题是当我执行上述操作SELECT时,当我与应用了授权的用户连接时,我无法做一个简单的事情。例如:

 select * from mytable;
Run Code Online (Sandbox Code Playgroud)

产量:

ERROR:  permission denied for relation mytable
Run Code Online (Sandbox Code Playgroud)

如何做到这一点?
此外,我应该使用public?以外的命名模式吗?

postgresql permissions access-control postgresql-9.5

3
推荐指数
1
解决办法
9854
查看次数