PostgreSQL 撤销列的权限

bar*_*oma 5 sql postgresql grant postgresql-9.5

editor_users我的 PostgreSQL 9.5 数据库中有一个用户组。而我的 产品表被授予select, insert, update and deleteeditor_user会员。

但我想阻止我的 id 列。没有人可能不会更新 id 列。如何撤销用户的更新权限?

Max*_*Max 5

您可以为每个列授予权限。假设您有一个如下表:

CREATE TABLE product (
    id serial primary key,
    mytext text
);
Run Code Online (Sandbox Code Playgroud)

您可以授予editor_user这样的权限:

GRANT SELECT(id), INSERT(id) ON product TO editor_user;
GRANT SELECT(mytext), UPDATE(mytext), INSERT(mytext), REFERENCES(mytext) ON product TO editor_user;
Run Code Online (Sandbox Code Playgroud)

  • 摘自 [https://www.postgresql.org/docs/9.0/static/sql-grant.html] (postgresql)“在表级别授予权限,然后针对一列撤销它不会执行您希望的操作:表级授权不受列级操作的影响。” (3认同)