【问题标题】:Revoke CONNECT permission to new DB by default默认撤销对新数据库的 CONNECT 权限
【发布时间】:2021-08-24 21:32:21
【问题描述】:

这发生在 GCP 的 Cloud SQL 上新创建的 Postgres 13 实例上。

我想禁止用户连接到新创建的数据库。所以我正在修改模板数据库:

REVOKE ALL ON DATABASE template1 FROM public;

然后,我创建新的数据库:

CREATE DATABASE mydb TEMPLATE template1;

然后我正在检查现有用户的 CONNECT 权限:

SELECT datname
FROM pg_database
WHERE has_database_privilege('someuser', datname, 'CONNECT')

    datname
---------------
 cloudsqladmin
 postgres
 template0
 mydb

如您所见,someuser 拥有CONNECTmydb 的权限。

为什么会这样?如何防止用户连接到新创建的数据库?

【问题讨论】:

    标签: postgresql database-administration


    【解决方案1】:

    数据库的权限CREATE DATABASE 期间从模板数据库复制。相反,所有新数据库都具有相同的默认权限:CONNECTTEMP 对应于 PUBLIC,以及所有者的所有权限。

    除了修改 PostgreSQL 代码之外,无法更改该默认值。

    【讨论】:

    • 感谢您的解释。我怀疑它是这样工作的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多