首页 文章

从用户撤消在公共架构上创建 - 在Postgresql中不起作用

提问于
浏览
1

我正在使用 postgresql -8.4.20 这是JON服务器的后端,并使用用户名 rhqadmin 登录并连接到数据库 rhq .

连接后它默认将我重定向到公共模式 . 现在我不想让这个用户 rhqadmin 在公共架构中创建表 .

所以我使用以下命令撤销公共模式的创建权限: -

Revoke Create ON SCHEMA public FROM rhqadmin;

然后它给了我警告 -

“没有特权可以被撤销为”公共“ .

当我用超级用户 postgres 登录并从那里我撤消'CREATE'权限公共架构为用户 rhqadmin 然后它没有给出任何警告并成功撤销然后我用用户 rhqadmin 登录并尝试在公共架构中创建表并再次允许即使从超级用户撤销创建权限后,我也要创建表 .

请告诉我为什么撤销权限不适用于公共架构或我犯了任何错误 .

问候,
阿维纳什

1 回答

  • 5

    您的问题是 CREATE 权限未授予 rhqadmin ,而是授予默认情况下每个人都属于的特殊角色 PUBLIC .

    由于PostgreSQL中的权限是附加的,因此如果允许每个人使用,则无法仅向单个用户明确禁止某些内容 .

    解决方案可能是:

    REVOKE CREATE ON SCHEMA public FROM PUBLIC;
    

相关问题