一、基于角色的权限管理(RBAC)
在 RBAC 模型中,权限不是直接分配给用户,而是通过角色间接分配:
1. 定义角色: 根据工作职能(例如:管理员、编辑、普通用户)创建不同的角色。
2. 分配权限给角色: 为每个角色分配其完成工作所需的权限集(例如:“dba”角色拥有“创建、修改库表”的权限)。
3. 分配角色给用户: 将一个或多个角色分配给用户。用户继承角色的所有权限。
4. 当用户的工作职责发生变化时,管理员只需要更改用户的角色分配,访问权限就会自动调整,无需逐一修改用户的上百条权限。
二、基于用户的权限管理(UBAC)
UBAC 是对 RBAC 的补充模型,权限直接分配给用户,适用于少量用户的特殊授权场景:
1. 绕过角色直接授权:管理员可以将库表权限直接授予指定用户,无需为其创建或绑定角色。
2. 权限合并生效:当用户同时拥有角色权限和直接授予的 UBAC 权限时,最终权限取两者并集。
3. 独立回收:回收用户角色不影响其 UBAC 权限,可单独回收或调整。
三、用户
详情请参见 用户管理。
四、角色
详情请参见 角色管理。
五、Catalog-Schema-Table(View) 三级权限管理机制
TCHouse-X 采用 Catalog-Schema-Table(View) 三级访问控制模型来组织数据权限。这种结构不仅提供了清晰的数据资产视图,更实现了基于角色的分级权限管理。所有权限均自上而下继承: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 删除数据 |
九、View (数据表)
基于表定义的查询结果(视图),其作用有:
·呈现数据。
·权限控制: 提供最细粒度的权限控制。可以对视图授予精确的权限,其权限类型有:
| 权限 | 权限分类 | 权限解释 |
| ALL_PRIVILEGES | 视图权限 | 选中 View 的 ALL 权限 |
| SelectView | 视图权限 | 读取选中 View 的数据 |
| AlterView | 视图权限 | 修改选中 View 元数据 |
| DropTable | 视图权限 | 移除选中 View |