ALTER DEFAULT PRIVILEGES

    注意事项

    目前只支持表(包括视图)、 序列、函数、类型、密态数据库客户端主密钥和列加密密钥的权限更改。

    • 其中abbreviated_grant_or_revoke子句用于指定对哪些对象进行授权或回收权限。

      1. | grant_on_sequences_clause
      2. | grant_on_functions_clause
      3. | grant_on_types_clause
      4. | grant_on_client_master_keys_clause
      5. | grant_on_column_encryption_keys_clause
      6. | revoke_on_tables_clause
      7. | revoke_on_sequences_clause
      8. | revoke_on_functions_clause
      9. | revoke_on_types_clause
      10. | revoke_on_client_master_keys_clause
      11. | revoke_on_column_encryption_keys_clause
    • 其中grant_on_tables_clause子句用于对表授权。

      1. GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM }
      2. [, ...] | ALL [ PRIVILEGES ] }
      3. ON TABLES
      4. TO { [ GROUP ] role_name | PUBLIC } [, ...]
      5. [ WITH GRANT OPTION ]
    • 其中grant_on_sequences_clause子句用于对序列授权。

      1. GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
      2. [, ...] | ALL [ PRIVILEGES ] }
      3. ON SEQUENCES
      4. TO { [ GROUP ] role_name | PUBLIC } [, ...]
      5. [ WITH GRANT OPTION ]
    • 其中grant_on_functions_clause子句用于对函数授权。

      1. ON FUNCTIONS
      2. TO { [ GROUP ] role_name | PUBLIC } [, ...]
    • 其中grant_on_types_clause子句用于对类型授权。

    • 其中grant_on_client_master_keys_clause子句用于对客户端主密钥授权。

      1. GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
      2. ON CLIENT_MASTER_KEYS
      3. TO { [ GROUP ] role_name | PUBLIC } [, ...]
      4. [ WITH GRANT OPTION ]
    • 其中grant_on_column_encryption_keys_clause子句用于对列加密密钥授权。

      1. GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
      2. ON COLUMN_ENCRYPTION_KEYS
      3. TO { [ GROUP ] role_name | PUBLIC } [, ...]
      4. [ WITH GRANT OPTION ]
      1. REVOKE [ GRANT OPTION FOR ]
      2. { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM }
      3. [, ...] | ALL [ PRIVILEGES ] }
      4. ON TABLES
      5. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
      6. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
    • 其中revoke_on_sequences_clause子句用于回收序列的权限。

      1. REVOKE [ GRANT OPTION FOR ]
      2. { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT }
      3. [, ...] | ALL [ PRIVILEGES ] }
      4. ON SEQUENCES
      5. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
      6. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
    • 其中revoke_on_functions_clause子句用于回收函数的权限。

    • 其中revoke_on_types_clause子句用于回收类型的权限。

      1. REVOKE [ GRANT OPTION FOR ]
      2. { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
      3. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    • 其中revoke_on_client_master_keys_clause子句用于回收客户端主密钥的权限。

      1. REVOKE [ GRANT OPTION FOR ]
      2. { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
      3. ON CLIENT_MASTER_KEYS
      4. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
      5. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
    • 其中revoke_on_column_encryption_keys_clause子句用于回收列加密密钥的权限。

      1. REVOKE [ GRANT OPTION FOR ]
      2. { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] }
      3. ON COLUMN_ENCRYPTION_KEYS
      4. FROM { [ GROUP ] role_name | PUBLIC } [, ...]
      5. [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]

    参数说明

    • target_role

      已有角色的名称。如果省略FOR ROLE/USER,则缺省值为当前角色/用户。

      取值范围:已有角色的名称。

    • 现有模式的名称。

      target_role必须有schema_name的CREATE权限。

      取值范围:现有模式的名称。

    • role_name

      被授予或者取消权限角色的名称。

      取值范围:已存在的角色名称。

    1. --将创建在模式tpcds里的所有表(和视图)的SELECT权限授予每一个用户。
    2. openGauss=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds GRANT SELECT ON TABLES TO PUBLIC;
    3. --创建用户普通用户jack
    4. openGauss=# CREATE USER jack PASSWORD 'xxxxxxxxx';
    5. --将tpcds下的所有表的插入权限授予用户jack
    6. openGauss=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds GRANT INSERT ON TABLES TO jack;
    7. --撤销上述权限。
    8. openGauss=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds REVOKE SELECT ON TABLES FROM PUBLIC;
    9. openGauss=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds REVOKE INSERT ON TABLES FROM jack;
    10. --删除用户jack

    相关链接

    REVOKE