【问题标题】:How to grant privileges on specific table with postgresql如何使用 postgresql 授予特定表的权限
【发布时间】:2020-08-31 07:43:25
【问题描述】:

我想授予特定表中的角色一些特权。 这是我尝试的方法

CREATE ROLE EDITOR WITH PASSWORD 'EDITOR';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO EDITOR;
GRANT INSERT ON ALL COMMENTARY IN SCHEMA public TO EDITOR;
GRANT INSERT, UPDATE, DELETE ON ALL ARTICLES IN SCHEMA public TO EDITOR;

但我在“COMMENTARY IN”附近有语法错误,我想我错过了一些东西,但我不知道是什么。

【问题讨论】:

  • 没有“ALL COMMENTARY IN”之类的东西。有什么东西让你相信有吗?有称为 cmets 的数据库对象,但它们没有附加的可授予权限。你只是说一个名为“评论”的表吗?在这种情况下,它将是ON public.commentary TO

标签: postgresql roles


【解决方案1】:

PostgreSQL 中没有“评论”对象,也没有“文章”对象。

如果这些对象是你创建的类型,你应该使用正确的语法:

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON TYPE type_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

见https://www.postgresql.org/docs/12/sql-grant.html。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2014-09-15
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多