管理用户权限

最近更新时间:2025-04-18 15:18:52

我的收藏

角色概述

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

创建用户

使用 dbadmin 账户登录腾讯云数据仓库 TCHouse-P 集群,执行下面的语句,创建一个新的用户 demo_user:
CREATE ROLE demo_user WITH LOGIN PASSWORD 'demo_user@123';

通过上述操作,创建了一个具有 LOGIN 权限、密码为demo_user@123的用户 demo_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
PASSWORD
创建用户时设置密码
VALID UNTIL 'timestamp'
密码的到期时间
RESOURCE QUEUE 'name'
用户连接后,建立的查询被安排到的资源队列名
pg_default
除了在创建用户时能够对其进行权限授予,还能在创建完成后通过 ALTER ROLE 语法对其进行权限的重新赋予。例如给 demo_user 用户增加创建新用户的权限:
ALTER ROLE demo_user WITH CREATEROLE;

对象权限管理

当一个对象(例如 database、table、schema、function 等)被创建时,必然会有一个归属者,这个归属者一般为执行创建对象语句的用户。初始时,只有归属者对这个对象拥有所有的操作权限。例如:
GRANT INSERT ON demo_table TO demo_user;