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