tencent cloud

文档反馈

用户与权限操作

最后更新时间:2024-01-22 16:22:57

    云数据库默认角色

    腾讯云数据库 PostgreSQL 未开放 superuser 角色属性和 pg_execute_server_program、pg_read_server_files、pg_write_server_files 角色供用户使用。但因为部分操作必须要求 superuser 进行,所以云数据库 PostgreSQL 提供了 pg_tencentdb_superuser 角色用以替代 superuser。

    pg_tencentdb_superuser 角色

    此角色支持的权限包括:系统权限和数据库对象权限。详细权限如下表:

    系统权限

    权限
    描述
    CREATEDB
    可以执行 database 的创建。
    BYPASSRLS
    可以绕过所有行级安全策略检查 。
    REPLICATION
    默认拥有 replication 权限,也可以授权 replication 权限给其他用户。
    CREATEROLE
    拥有如社区版中 CREATEROLE 的权限,但是已将 pg_read_server_files, pg_write_server_files 和 pg_execute_server_program 从 createrole 权限中移除。

    对象权限

    对象
    描述
    database
    默认拥有所有 owner 为非 superuser 的 database 的权限。
    schema
    默认拥有所有 owner 为非 superuser 的 schema 的权限。
    table/sequence
    默认拥有所有 owner 为非 superuser 的 table/sequence 的权限。
    function
    默认拥有所有 owner 为非 superuser 的 function 的权限。
    language
    无权限。
    tablespace
    无权限。
    FDW / foreign server
    默认拥有所有 owner 为非 superuser 的 FDW / foreign server 的权限。
    TYPE
    默认拥有所有 owner 为非 superuser 的 type 的权限。

    其他操作

    订阅/发布:可以创建订阅/发布;可以创建 publication for all tables;可以创建 slot。
    插件:可创建所有支持的插件。创建插件时,当前 pg_tencentdb_superuser 会临时提权为 superuser,通过所有的权限检查。
    load_file 权限保持默认行为,仅可以加载支持的插件库。
    开放 pgstat_get_backend_current_activity 函数中查看死锁的详细信息的权限,方便用户自己排查死锁。
    限制 pg_signal_backend 函数,只有 pg_tencentdb_superuser 才能 kill pg_tencentdb_superuser 的进程。

    权限操作

    详细权限操作可以参考 PostgreSQL 社区官方文档:
    创建用户,详细可参考 官方文档
    CREATE USER name [ [ WITH ] option [ ... ] ]
    
    where option can be:
    
    SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid
    创建角色,详细可参考 官方文档
    CREATE ROLE name [ [ WITH ] option [ ... ] ]
    
    where option can be:
    
    SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid
    修改角色属性,详细可参考 官方文档
    ALTER ROLE role_specification [ WITH ] option [ ... ]
    
    where option can be:
    
    SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    赋予角色对象权限,详细可参考 官方文档
    #简单写法
    GRANT <权限> on <对象> to <角色>;
    回收角色对象权限,详细可参考 官方文档
    #简单写法
    REVOKE <权限> ON <对象> FROM <角色>;
    将角色赋予其他角色:
    #简单写法
    GRANT <角色名> to <其他角色>;
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持