【问题标题】:How to do one user postgresql with privileges only execute functions如何使用权限仅执行功能的一个用户 postgresql
【发布时间】:2017-06-05 03:37:24
【问题描述】:

我想创建只能从一个数据库执行功能的用户。不查看任何数据库的源函数、过程、选择等。

谢谢。

【问题讨论】:

    标签: postgresql function privileges grant role


    【解决方案1】:

    应该这样做:

    • 允许用户仅连接到正确的数据库,或者具有数据库对象的权限(您必须先将REVOKE CONNECT 权限默认授予PUBLIC)或在pg_hba.conf.

    • 在用户可以连接的一个数据库中,它应该对包含函数的架构具有USAGE 权限。

    • 使用SECURITY INVOKER 创建属于有权访问所需对象的用户的函数。

    • REVOKE EXECUTE 将所有功能从PUBLICGRANT 根据需要提供给用户。

    PostgreSQL 中没有支持的方式来阻止可以登录的用户查看函数的源代码。您可以尝试REVOKE SELECT ON pg_proc FROM PUBLIC,但如果您遇到 pgAdmin 或 psql 等客户端程序的问题,请不要感到惊讶。

    【讨论】:

    • 谢谢@laurenz-albe,我会试试的!
    猜你喜欢
    • 2017-12-18
    • 2021-05-28
    • 2023-04-02
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多