【问题标题】:Default privileges are not applied after tables are created创建表后不应用默认权限
【发布时间】:2022-01-18 15:26:29
【问题描述】:

用于架构的 SQL

CREATE SCHEMA my_schema AUTHORIZATION as_admin;
GRANT USAGE ON SCHEMA my_schema TO as_user;
GRANT ALL ON SCHEMA my_schema TO as_admin;
GRANT USAGE ON SCHEMA my_schema TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT DELETE, UPDATE, SELECT, INSERT ON TABLES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT SELECT ON TABLES TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON SEQUENCES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON SEQUENCES TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON TYPES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON TYPES TO as_admin;

当我由具有组角色 as_admin 的用户创建表时,权限不会被继承

set role as_admin;
CREATE TABLE my_schema.test() WITH (OIDS = FALSE) TABLESPACE pg_default;
ALTER TABLE my_schema.test OWNER to as_admin;

创建后的SQL表

-- Table: my_schema.test
-- DROP TABLE my_schema.test;
CREATE TABLE my_schema.test() WITH (OIDS = FALSE) TABLESPACE pg_default;
ALTER TABLE my_schema.test OWNER to as_admin;

为什么会这样?特权在哪里?

【问题讨论】:

    标签: postgresql privileges postgresql-11


    【解决方案1】:

    错误是我正在以 db_admin 身份创建架构 当我将架构重新创建为 as_admin 时 - 所有新对象都是使用特权创建的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 2018-02-14
      • 2012-01-22
      • 1970-01-01
      • 2021-03-02
      • 2012-09-10
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多