开发者社区 问答 正文

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


分析型数据库支持基于数据库表的层级权限管理模型,提供类似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-31 13:32:18 1887 分享 版权
阿里云 AI 助理回答

分析型数据库(AnalyticDB,原名MaxCompute)是阿里云提供的一种高并发、低延迟的在线分析处理(OLAP)服务,它支持灵活的数据分析和大规模数据处理。您提到的基于数据库表的层级权限管理模型,体现了AnalyticDB在安全性方面对细粒度访问控制的支持。下面我将根据您的描述,进一步解释分析型数据库中的用户权限管理机制:

用户与账号类型

  • 用户定义:在AnalyticDB中,任何支持的账号类型都被视为“用户”。这包括但不限于项目成员、管理员等角色。与MySQL不同的是,AnalyticDB当前不支持基于主机(host)的授权,即权限授予不考虑用户从哪个IP或主机连接到数据库。

权限对象与权限类型

权限管理遵循一个层次化的模型,从大到小依次为: 1. Database (数据库):可以授权整个数据库(db_name.*)或默认数据库(*),涉及权限如创建数据库、表或表组。 2. Table/ TableGroup (表/表组):针对特定表或表组进行权限设置,如查询、修改表结构等。 3. Column (列):最细粒度的权限控制,允许控制对特定列的操作。

各对象的权限说明

  • SELECT: 读取数据的权限。
  • LOAD DATA: 导入数据到表或分区的能力。
  • DUMP DATA: 导出表或分区数据的权限,需要同时具备SELECT权限。
  • DESCRIBE: 查看数据库、表/表组的元数据信息。
  • SHOW: 列出数据库、表/表组内部的对象。
  • ALTER: 修改表或表组的结构。
  • DROP: 删除数据库、表/表组或分区。
  • CREATE: 创建数据库、表或表组。
  • INSERT: 插入数据的权限。
  • DELETE: 删除数据的权限。
  • ALL [PRIVILEGES]: 包含上述所有权限。

特殊情况

  • 查询数据权限:直接查询表数据至少需要SELECT权限,但某些系统函数调用(如SELECT now())可能不需要查询特定表的权限。
  • 导出数据权限:执行数据导出不仅需要DUMP DATA权限,还需要目标位置的数据写入权限,以及SELECT权限来读取源数据。

综上所述,AnalyticDB通过精细的权限管理体系,确保了数据的安全性和访问控制的灵活性,使得多用户环境下的数据分析更加安全可控。用户可以根据实际需求,为不同的团队成员或应用分配合适的权限,以实现高效且安全的数据操作。

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