首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL -只读"SuperUser“

PostgreSQL -只读"SuperUser“
EN

Stack Overflow用户
提问于 2016-01-03 11:09:41
回答 1查看 987关注 0票数 2

我正在寻找如何创建postgres角色的解决方案,它可以连接到所有数据库(也是在角色之后创建的数据库)。

这通常是超级用户可以做的事情,但在我的例子中,这个用户应该只对特定的表进行只读访问。

这个是可能的吗?

还是每次添加新数据库时都必须更新该角色?尽管桌子的名字总是一样的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-03 15:26:32

默认情况下,PUBLIC可以连接到PostgreSQL数据库

PostgreSQL将某些类型的对象的默认权限授予公共。默认情况下,不对表、列、架构或表空间授予公共特权。对于其他类型,授予公共的默认特权如下:为数据库连接和创建临时表;对函数执行特权;对语言使用特权。

如果您使用的是pgAdminIII,并且在对象浏览器中选择了一个数据库,您将在SQL窗格中看到这一点。

代码语言:javascript
复制
GRANT CONNECT, TEMPORARY ON DATABASE sandbox TO public;

您可以使用更改默认权限对某些类型的数据库对象使用alter default privileges。这不影响现有的数据库对象。以通常的方式授予对现有对象的特权。

alter default privileges是“每个数据库”语句;对于尚未创建的数据库,您不能更改默认权限。

可以为存在的表授予特权。您可以更改尚未存在的所有表的默认权限。但是,对于具有特定名称但尚未存在的表,您不能更改默认权限。

您可以在模板数据库中对对象设置适当的特权和默认值。然后,您创建的每个数据库都将包括这些对象、特权和默认值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34575829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档