开发者社区 问答 正文

分析型数据库权限模型是什么?

分析型数据库支持基于数据库表的层级权限管理模型,提供类似MySQL的ACL授权模式。一个ACL授权由被授权的用户、授权对象和授予的对象权限组成。

分析型数据库中的用户


如6.1所述,任何分析型数据库支持的账号类型均可视为一个用户。和MySQL略有不同的是,分析型数据库目前不支持针对用户在host上授权。

分析型数据库的权限对象和各对象权限

  • Database,即 db_name.* 或 * (默认数据库),指定数据库或数据库上所有表/表组
  • Table,即 db_name.table_name 或 table_name ,指特定表
  • TableGroup,即 db_name.table_group_name 或 table_group_name ,指特定表组
  • Column,语法上由 column_list 和 Table 组成,指定表的特定列
  • 聚合: Database -> Table[Group] -> Column,即每个权限级别能聚合其下面级别的所有权限
  • 在 Database 级别上,某个权限实际可能包含多个权限,例如 GRANT CREATE ON *.* 同时包含创建数据库和创建表的权限
-DatabaseTable 或 TableGroupColumn说明
SELECT+++查询数据
LOAD DATA++-导入表(分区)数据
DUMP DATA++-导出表(分区)数据
DESCRIBE++-查看数据库、表/表组信息(Global、Database)、查看表/表组信息(Table[Group])
SHOW++-列出数据库、表/表组内部对象(Global、Database)、列出表内部对象(Table[Group])
ALTER++-修改表/表组定义
DROP++-删除数据库、表/表组或分区(Global、Database)、删除表/表组或分区(Table[Group])
CREATE+--创建数据库、表/表组或分区(Global)、创建表/表组(Database)
INSERT++-执行Insert的权限
DELETE++-执行Delete的权限
ALL [PRIVILEGES]+++以上所有权限


查询数据的权限

  • 查询表数据需要 SELECT 权限,最小级别是列
  • 并非所有查询都需要该权限,例如 SELECT now()


导出数据的权限

  • 导出数据同时需要 DUMP DATA 和 SELECT 权限
  • 同时需要数据导出目的地的数据写入相关权限

展开
收起
nicenelly 2017-10-26 15:37:48 2360 分享 版权
阿里云 AI 助理回答

分析型数据库(如AnalyticDB for MySQL)支持一套详尽且层级化的权限管理模型,该模型与MySQL的访问控制列表(ACL)授权模式相似。此模型允许细粒度地控制用户对数据库资源的访问,确保数据安全和合规性。以下是关于分析型数据库中用户、权限对象、各对象权限以及特定操作(如查询和导出数据)权限要求的关键点概述:

分析型数据库中的用户

  • 用户定义:任何由分析型数据库支持的账号类型均视为“用户”。与传统MySQL相比,分析型数据库当前不涉及基于主机(host-based)的用户授权,简化了权限管理的复杂度。

权限对象及权限

  • 权限层次结构:权限控制遵循聚合原则,从高到低依次为Database > Table[Group] > Column,每一层可聚合其下层的所有权限。

    • Database:控制整个数据库或默认数据库内的所有表/表组,如db_name.**
    • Table[Group]:针对特定表或表组,如db_name.table_nametable_name
    • Column:精确到表的某一列,需与Table结合使用,例如通过GRANT SELECT (column_list) ON db_name.table_name TO 'username'指定列级权限。
  • 权限类型

    • SELECT: 查询数据。
    • LOAD DATA: 导入数据至表或分区。
    • DUMP DATA: 导出表或分区的数据。
    • DESCRIBE: 查看数据库、表信息。
    • SHOW: 列出数据库、表内部对象。
    • ALTER: 修改表定义。
    • DROP: 删除数据库、表或分区。
    • CREATE: 创建数据库、表或分区。
    • INSERT: 插入数据。
    • DELETE: 删除数据。
    • ALL PRIVILEGES: 包含上述所有权限。

查询数据的权限

  • 要查询表中的数据,用户至少需要对该表具有SELECT权限。这是权限控制的最小级别,可以细化到列级别。

导出数据的权限

  • 导出数据不仅需要DUMP DATA权限,还需具备SELECT权限以读取数据。
  • 成功导出还依赖于目标存储位置的数据写入权限,这虽未直接在权限体系内体现,但在实际操作中是必需的考虑因素。

综上所述,分析型数据库通过精细的权限模型实现了对用户操作的严格控制,确保数据访问既灵活又安全。用户应根据具体需求,合理分配权限,以达到最佳的安全实践效果。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答