hive权限之hive元数据
hive权限之hive元数据
- 介绍
元数据
描述数据的数据,例如数据表A的大小是100KB,数据表是数据,表大小是数据的数据
hive元数据
hive元数据中保存hive库信息、表信息、角色信息、权限关系,因此学习hive权限,Hive元数据至关重要。hive元数据一般存储在关系型数据库中,本篇文章以MYSQL为例,对hive元数据库的表进行分析。
- 数据库
数据库表(dbs)
表结构
| DB_ID | bigint | 20 | 数据库ID |
| DESC | varchar | 4000 | 数据库描述 |
| DB_LOCATION_URI | varchar | 4000 | 数据库HDFS路径 |
| NAME | varchar | 128 | 数据库名 |
| OWNER_NAME | varchar | 128 | 数据库所有者名称 |
| OWNER_TYPE | varchar | 10 | 数据库所有者类型 |
表数据展示

该表产生影响的操作
在hive中新增、删除库
在hive中修改库的owner
- 数据表
- 数据表表(tbls)
表结构
| TBL_ID | bigint | 20 | 表ID |
| CREATE_TIME | int | 11 | 创建时间 |
| DB_ID | bigint | 20 | 数据库ID |
| LAST_ACCESS_TIME | int | 11 | 上次访问时间 |
| OWNER | varchar | 767 | 拥有者名称 |
| OWNER_TYPE | varchar | 10 | 拥有者类型 |
| RETENTION | int | 11 | 保留字段 |
| SD_ID | bigint | 20 | 序列化配置信息ID |
| TBL_NAME | varchar | 128 | 表名 |
| TBL_TYPE | varchar | 128 | 表类型MANAGED_TABLE、EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW |
| VIEW_EXPANDED_TEXT | mediumtext | 0 | 视图的详细HQL语句 |
| VIEW_ORIGINAL_TEXT | mediumtext | 0 | 视图的原始HQL语句 |
表数据展示

对该表产生影响的操作
Hive中表的新增、删除
Hive中修改表的owner
数据表属性信息表(table_params)
表结构
| TBL_ID | bigint | 20 | 数据表ID |
| PARAM_KEY | varchar | 255 | 参数名 |
| PARAM_VALUE | varchar | 4000 | 参数值 |
表数据展示

影响该表的操作
创建、删除表、修改表注释、新增数据、删除数据等
- 权限
角色表(roles)
表结构
| ROLE_ID | bigint | 20 | 角色ID |
| CREATE_TIME | int | 11 | 创建时间 |
| OWNER_NAME | varchar | 128 | 拥有者名称 |
| ROLE_NAME | varchar | 128 | 角色名称 |
表数据展示

影响该表的操作
hive中新增、删除角色
角色授权表(role_map)
表结构
| ROLE_GRANT_ID | bigint | 20 | 角色授权ID |
| ADD_TIME | int | 11 | 授权时间 |
| GRANT_OPTION | smallint | 6 | 1.被授权者能将该权限授权给其他人 |
| GRANTOR | varchar | 128 | 授权者 |
| GRANTOR_TYPE | varchar | 128 | 授权者类型 |
| PRINCIPAL_NAME | varchar | 128 | 被授权者名称 |
| PRINCIPAL_TYPE | varchar | 128 | 被授权者类型 |
| ROLE_ID | bigint | 20 | 角色ID |
表数据展示

影响该表的操作
给用户授权角色、给角色授权角色
库权限表(db_privs)
表结构
| DB_GRANT_ID | bigint | 20 | 库授权ID |
| CREATE_TIME | int | 11 | 创建时间 |
| DB_ID | bigint | 20 | 数据库ID |
| GRANT_OPTION | smallint | 6 | 是否可以给其他人授权(1是0否) |
| GRANTOR | varchar | 128 | 授权人名称 |
| GRANTOR_TYPE | varchar | 128 | 授权人类型 |
| PRINCIPAL_NAME | varchar | 128 | 被授权人名称 |
| PRINCIPAL_TYPE | varchar | 128 | 被授权人类型 |
| DB_PRIV | varchar | 128 | 库权限 |
表数据展示

对该表影响的操作
授权用户库权限
grant SELECT/DELETE/INSERT/UPDATE on database XXX to user/role XXX
移除用户库权限
revoke SELECT/DELETE/INSERT/UPDATE on database XXX from user/role XXX
- 表权限表(tbl_privs)
表结构
| TBL_GRANT_ID | bigint | 20 | 表权限ID |
| CREATE_TIME | int | 11 | 创建时间 |
| GRANT_OPTION | smallint | 6 | 是否可再授权给其他人 |
| GRANTOR | varchar | 128 | 授权者 |
| GRANTOR_TYPE | varchar | 128 | 授权者类型 |
| PRINCIPAL_NAME | varchar | 128 | 被授权者名称 |
| PRINCIPAL_TYPE | varchar | 128 | 被授权者类型 |
| TBL_PRIV | varchar | 128 | 表权限 |
| TBL_ID | bigint | 20 | 表ID |
表数据展示

对该表产生影响的操作
授权、移除用户表权限
grant SELECT/DELETE/INSERT/UPDATE on table dbName.tbName to USER/ROLE xxx
revoke SELECT/DELETE/INSERT/UPDATE on table dbName.tbName from USER/ROLE xxx
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
