gpt4 book ai didi

PostgreSQL - 只读 "SuperUser"

转载 作者:行者123 更新时间:2023-11-29 12:11:06 26 4
gpt4 key购买 nike

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

这通常是 super 用户可以做的事情,但在我的例子中,该用户应该只对特定表具有只读访问权限。

这可能吗?

或者我是否必须在每次添加新数据库时都更新角色?尽管表名始终相同。

谢谢

最佳答案

PUBLIC 可以 connect to PostgreSQL databases默认情况下。

PostgreSQL grants default privileges on some types of objects to PUBLIC. No privileges are granted to PUBLIC by default on tables, columns, schemas or tablespaces. For other types, the default privileges granted to PUBLIC are as follows: CONNECT and CREATE TEMP TABLE for databases; EXECUTE privilege for functions; and USAGE privilege for languages.

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

GRANT CONNECT, TEMPORARY ON DATABASE sandbox TO public;

您可以 change default privileges在某些类型的数据库对象上使用 alter default privileges。这不会影响现有的数据库对象。以通常的方式授予对现有对象的特权。

alter default privileges 是“每个数据库”语句;您无法更改尚未创建的数据库的默认权限。

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

您可以为 the template database 中的对象设置合适的权限和默认值.然后,您创建的每个数据库都将包含这些对象、权限和默认值。

关于PostgreSQL - 只读 "SuperUser",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34575829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com