tencent cloud

腾讯云数据仓库 TCHouse-P

产品动态
产品简介
产品概述
应用场景
节点规格
集群架构
购买指南
计费概述
购买方式
欠费说明
快速入门
操作指南
管理集群
访问数据仓库
监控告警
访问管理
性能指标
TPC-B
工具及下载
数据接入
使用 DataX 离线导入 TencentDB 数据
DataX 增量同步导入 MySQL 数据
使用外表高速导入或导出 COS 数据
使用外表同步 EMR 数据
使用 rule 规则实现云数据仓库 PostgreSQL upsert 操作
数仓开发
云上搭建 Airflow
API 文档
History
Introduction
API Category
Making API Requests
Information Query APIs
Instance APIs
Query APIs
Cluster Management APIs
Cluster Operation APIs
Data Types
Error Codes
实践教程
数仓表开发
表分布键选择
表存储格式选择
表分区使用
插件使用
冷备数据
统计信息和空间维护
常见问题
联系我们

管理用户权限

PDF
聚焦模式
字号
最后更新时间: 2024-11-27 15:29:17

角色概述

在腾讯云数据仓库 TCHouse-P 中使用 roles 来对数据库的访问权限进行管理,角色(roles)的概念实际上包含了 users 与 groups 两部分,一个 role 可以是数据库普通用户,即 user,也可以是数据库的用户组,即 group。角色可以拥有数据库对象(例如表、视图等),并且可以将这些对象的访问权限分配给其他角色。
集群创建时,会提示用户设置初始用户名和密码,这个初始用户为“管理员用户”,该用户拥有创建用户、创建数据库、登录的权限。集群创建完成后,可以使用“管理员用户”连接数据库,一般地,管理员用户拥有最大化的权限,也意味着这个账号要被尽量少的人使用,因此您可以使用管理员用户创建其他用户,并为这些用户授予所需要的权限,具体授权参考 用户组对象权限管理。您也可以创建数据库以及其他对象,参考 定义数据库。登录数据库可以参考 连接数据库

创建用户

role 分为用户 user 和用户组 group,通常 user 级别的 role(后面统称 user)具有能够登录腾讯云数据仓库 TCHouse-P 数据库并初始化一个会话的权限,因此,在建立一个 user 时,必须为其赋予 LOGIN 的权限。例如:
CREATE role jsmith with LOGIN;
通过上述操作,创建了一个具有 LOGIN 权限的 user,通过这个 user,可以对数据库进行连接。腾讯云数据仓库 TCHouse-P 对用户的访问管理除了 LOGIN 权限外,还有以下其他权限,可以在使用 CREATE ROLE 语句创建角色时对其所能拥有的权限进行授权。
权限取值
作用
默认值
SUPERUSER Ι NOSUPERUSER
超级用户权限,只有超级用户才能创建其他的超级用户
NOSUPERUSER
CREATEDB Ι NOCREATEDB
创建数据库的权限
NOCREATEDB
CREATEROLE Ι NOCREATEROLE
创建和管理角色
NOCREATEROLE
INHERIT Ι NOINHERIT
决定了用户继承所属 group 的权限
INHERIT
LOGIN Ι NOLOGIN
连接登录数据库的权限,一般用户拥有该权限,用户组无该权限
NOLOGIN
CONNECTION LIMIT
限制能够并发连接数据库的连接数,-1表示无限制
-1
CREATEEXTTABLE Ι NOCREATEEXTTABLE
创建外表的权限
NOCREATEEXTTABLE
PASSWORD
创建用户时设置密码
VALID UNTIL 'timestamp'
密码的到期时间
RESOURCE QUEUE 'name'
用户连接后,建立的查询被安排到的资源队列名
pg_default
除了在创建用户时能够对其进行权限授予,还能在创建完成后通过 ALTER ROLE 语法对其进行权限的重新赋予。例如:
ALTER role jsmith with CREATEROLE;

用户组

group,即用户组,是一种特殊的 role,没有赋予 LOGIN 权限,group 通常被设定为经常搭配使用的权限组合,权限可以被作为一个整体授予给某个用户或者从某个用户处取消。
您可以通过使用以下语句来创建一个被授予权限组合的角色,即 group。
Create role, Create DB, Cannot login;
您还可以很方便地通过 GRANT TO 或者 REVOKE FROM 语句建立或者取消其他用户与该用户组的从属关系,拥有从属关系的用户会从这个用户组继承权限。
GRANT TO 语句示例:

用户 jsmith 归属于用户组 manager。
REVOKE FROM 语句示例:

将用户 jsmith 归属于用户组 manager 的关系取消。

对象权限管理

当一个对象(例如 database、table、schema、function 等)被创建时,必然会有一个归属者,这个归属者一般为执行创建对象语句的用户。初始时,只有归属者对这个对象拥有所有的操作权限。例如:
GRANT INSERT ON test TO jsmith;
我们可以通过上述语句,将 test 的 INSERT 权限授予 jsmith 用户,同样也可以通过 REVOKE FROM 取消。
同样,也可以通过 REASSIGN OWNED 语句将归属于某个用户的所有对象转移给别的用户,例如:
SET ROLE jsmith; //切换到jsmith用户
CREATE TABLE jsmithtest (age int, id int); //创建新的表
SET ROLE gpadmincloud; //切回到超级用户
reassign owned by jsmith to lambuser; //将归属于jsmith的对象都转移给lambuser。
由于归属于超级用户的对象不能转移给别的用户,因为有属于系统的对象归属于这个超级对象,因此我们需要使用非超级用户建立一个表。



完成对象从 jsmith 到 lambuser 归属权的转移。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈