PostgreSql:禁止更新列:怎么做?

mad*_*ada 4 postgresql

PostgreSql可以在没有触发器的情况下不允许更新列,只允许插入.

Mar*_*ith 12

完全未经测试但由于Postgres SQL支持列级权限,它看起来可能是.http://www.postgresql.org/docs/current/static/sql-grant.html

这有用吗?

GRANT SELECT (col1, col2), INSERT(col1, col2), UPDATE (col1) ON mytable TO userX;
Run Code Online (Sandbox Code Playgroud)

  • +1,但我会在引用的页面中引起注意:"如果用户拥有特定列或其整个表的特权,用户可以对列执行SELECT,INSERT等.授予权限表级别然后为一个列撤消它将不会执行您希望的操作:表级别授权不受列级操作的影响." 您的示例涵盖了这一点,因为它明确授予了所有权限,但我相信可能很容易忽略这一点. (11认同)