TCHouse-X 作为一款强大的数据引擎产品,内置库、表等多种数据库对象。它提供权限管理功能,允许用户对 TCHouse-X 内的用户及角色的库表访问权限进行精细化管理。目前,TCHouse-X 支持基于角色的权限管理(RBAC)。
基于角色的权限管理(RBAC)
在 RBAC 模型中,权限不是直接分配给用户,而是通过角色间接分配:
1. 定义角色: 根据工作职能(例如:管理员、编辑、普通用户)创建不同的角色。
2. 分配权限给角色: 为每个角色分配其完成工作所需的权限集(例如:“dba”角色拥有“创建、修改库表”的权限)。
3. 分配角色给用户: 将一个或多个角色分配给用户。用户继承角色的所有权限。
4. 当用户的工作职责发生变化时,管理员只需要更改用户的角色分配,访问权限就会自动调整,无需逐一修改用户的上百条权限。
用户
角色
Catalog-Schema-Table 三级权限管理机制
TCHouse-X 采用 Catalog-Schema-Table 三级访问控制模型来组织数据权限。这种结构不仅提供了清晰的数据资产视图,更实现了基于角色的分级权限管理。所有权限均自上而下继承:Catalog 级别的授权将直接作用于其包含的所有 Schema 和 Table。
说明:
TCHouse-X 当前版本仅支持默认 Catalog,因此在权限配置界面无需手动选择。
三级权限结构详解
Catalog(数据目录)
TCHouse-X 实例中数据的集合。其权限类型有:
权限 | 权限分类 | 权限解释 |
ALL_PRIVILEGES | 数据目录权限 | 选中的 Catalog 及以下所有库、表的 ALL 权限 |
CreateSchema | 数据目录权限 | 在选中 Catalog 下创建 Schema |
UseSchema | 数据目录下任意库权限 | 使用选中 Catalog 下任意 Schema |
AlterSchema | 数据目录下任意库权限 | 修改选中 Catalog 下任意 Schema |
DropSchema | 数据目录下任意库权限 | 移除选中 Catalog 下任意 Schema |
CreateTable | 数据目录下任意库权限 | 在选中 Catalog 下任意 Schema 下创建表 |
SelectTable | 数据目录下任意表权限 | 读取选中 Catalog 下任意表的数据 |
AlterTable | 数据目录下任意表权限 | 修改选中 Catalog 下任意表的元数据 |
DropTable | 数据目录下任意表权限 | 移除选中 Catalog 下任意表 |
InsertTable | 数据目录下任意表权限 | 向选中 Catalog 下任意表插入数据 |
DeleteTable | 数据目录下任意表权限 | 从选中 Catalog 下任意表删除数据 |
Schema(数据库)
Schema 是 TCHouse-X 实例中的逻辑分组,相当于传统数据库中的“数据库(Database)”或“模式(Schema)”。它用于将相关的表、视图、函数等对象组织在一起。其权限类型有:
权限 | 权限分类 | 权限解释 |
ALL_PRIVILEGES | 数据库权限 | 选中的 Schema 及以下所有表的 ALL 权限 |
UseSchema | 数据库权限 | 使用选中 Schema |
AlterSchema | 数据库权限 | 修改选中 Schema 的元数据 |
DropSchema | 数据库权限 | 移除选中 Schema |
CreateTable | 数据库权限 | 在选中 Schema 下创建表 |
SelectTable | 数据库下任意表权限 | 读取选中 Schema 下任意表的数据 |
AlterTable | 数据库下任意表权限 | 修改选中 Schema 下任意表的元数据 |
DropTable | 数据库下任意表权限 | 移除选中 Schema 下任意表 |
InsertTable | 数据库下任意表权限 | 向选中 Schema 下任意表插入数据 |
DeleteTable | 数据库下任意表权限 | 从选中 Schema 下任意表删除数据 |
Table (数据表/视图)
实际存储数据的最小单位(表),或基于表定义的查询结果(视图),其作用有:
实际存储和呈现数据。
权限控制: 提供最细粒度的权限控制。可以对单个表或视图授予精确的权限,其权限类型有:
权限 | 权限分类 | 权限解释 |
ALL_PRIVILEGES | 表/视图权限 | 选中 Table/View 的 ALL 权限 |
SelectTable | 表/视图权限 | 读取选中 Table/View 的数据 |
AlterTable | 表/视图权限 | 修改选中 Table/View 元数据 |
DropTable | 表/视图权限 | 移除选中 Table/View |
InsertTable | 表权限 | 向选中 Table 插入数据 |
DeleteTable | 表权限 | 从选中 Table 删除数据 |