hive 創建訪問用戶_hive創建角色并賦權

1 角色管理命令

1.1 創建角色

創建一個新角色,需要 admin 用戶執行

CREATE ROLE role_name;

1.2 刪除角色

刪除一個角色,需要 admin 用戶執行

DROP ROLE role_name;

1.3 顯示當前角色

顯示用戶當前角色列表

SHOW CURRENT ROLES;

1.4 設定角色

如果指定了role_name,則該角色將成為當前角色中的唯一角色

將Role_Name設置為All將刷新當前角色的列表(在新角色被授予用戶的情況下),并將其設置為默認的角色列表。

將Role_Name設置為None將從當前用戶中刪除所有當前角色。

SET ROLE (role_name|ALL|NONE);

1.5 顯示角色

列出所有當前存在的角色。

只有admin角色對此有特權。

SHOW ROLES;

1.6 賦權/撤銷語法

第一種

將一個或多個角色授予其他角色或用戶。

如果指定了“WITH ADMIN OPTION”,則用戶將獲得將該角色授予其他用戶/角色的權限。

如果授予語句最終在角色之間創建循環關系,則該命令將失敗并出現錯誤。

GRANT role_name [, role_name] ...

TO principal_specification [, principal_specification] ...

[ WITH ADMIN OPTION ];

principal_specification

: USER user

| ROLE role

從FROM子句中的用戶/角色中撤消角色的成員權限。

REVOKE [ADMIN OPTION FOR] role_name [, role_name] ...

FROM principal_specification [, principal_specification] ... ;

principal_specification

: USER user

| ROLE role

第二種

GRANT ROLE role_name [, role_name] ...

TO principal_specification [, principal_specification] ...

[WITH ADMIN OPTION]

REVOKE [ADMIN OPTION FOR] ROLE role_name [, role_name] ...

FROM principal_specification [, principal_specification] ...

principal_specification:

USER user

| GROUP group

| ROLE role

1.7 顯示角色授予

principal_name是用戶或角色的名稱。

列出已授予給定用戶或角色的所有角色。

SHOW ROLE GRANT (USER|ROLE|GROUP ) principal_name;

示例:

0: jdbc:hive2://localhost:10000> SHOW ROLE GRANT USER user1;

+---------+---------------+----------------+----------+

| role | grant_option | grant_time | grantor |

+---------+---------------+----------------+----------+

| public | false | 0 | |

| role1 | false | 1398284083000 | uadmin |

+---------+---------------+----------------+----------+

1.8 列出所有角色和屬于該角色的用戶

僅admin角色對此具有特權。

SHOW PRINCIPALS role_name;

示例:

0: jdbc:hive2://localhost:10000> SHOW PRINCIPALS role1;

+-----------------+-----------------+---------------+----------+---------------+----------------+

| principal_name | principal_type | grant_option | grantor | grantor_type | grant_time |

+-----------------+-----------------+---------------+----------+---------------+----------------+

| role2 | ROLE | false | uadmin | USER | 1398285926000 |

| role3 | ROLE | true | uadmin | USER | 1398285946000 |

| user1 | USER | false | uadmin | USER | 1398285977000 |

+-----------------+-----------------+---------------+----------+---------------+----------------+

2 權限管理

2.1 賦權和移除權限

對表或視圖賦權/撤銷授權

GRANT

priv_type [, priv_type ] ...

ON table_or_view_name

TO principal_specification [, principal_specification] ...

[WITH GRANT OPTION];

REVOKE [GRANT OPTION FOR]

priv_type [, priv_type ] ...

ON table_or_view_name

FROM principal_specification [, principal_specification] ... ;

principal_specification

: USER user

| ROLE role

priv_type

: INSERT | SELECT | UPDATE | DELETE | ALL

對列賦權/撤銷授權

GRANT

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

[ON object_specification]

TO principal_specification [, principal_specification] ...

[WITH GRANT OPTION]

REVOKE [GRANT OPTION FOR]

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

[ON object_specification]

FROM principal_specification [, principal_specification] ...

REVOKE ALL PRIVILEGES, GRANT OPTION

FROM user [, user] ...

priv_type:

ALL | ALTER | UPDATE | CREATE | DROP

| INDEX | LOCK | SELECT | SHOW_DATABASE

object_specification:

TABLE tbl_name

| DATABASE db_name

principal_specification:

USER user

| GROUP group

| ROLE role

如果授予用戶對表或視圖的WITH GRANT OPTION特權,則該用戶還可以賦權/撤消其他用戶的特權以及這些對象上的角色。

示例:

0: jdbc:hive2://localhost:10000/default> grant select on table secured_table to role my_role;

No rows affected (0.046 seconds)

0: jdbc:hive2://localhost:10000/default> revoke update, select on table secured_table from role my_role;

No rows affected (0.028 seconds)

2.2 顯示權限

SHOW GRANT [principal_specification] ON (ALL | [TABLE] table_or_view_name);

principal_specification

: USER user

| ROLE role

2.3 管理對象權限的示例

2.3.1 創建角色,并將指定數據庫所有/只讀權限賦給該角色

--創建名為bigdata_admin_role的角色

CREATE ROLE bigdata_admin_role;

--將數據庫bigdata_db的所有權限賦給bigdata_admin_role角色

GRANT ALL ON DATABASE bigdata_db TO ROLE bigdata_admin_role;

--將集群路徑所有權限賦權給bigdata_admin_role角色

GRANT ALL ON URI 'hdfs://nameservice/user/bigdata' TO bigdata_admin_role;

--將bigdata_admin_role角色的權限給到bigdata_g組

GRANT ROLE bigdata_admin_role TO GROUP bigdata_g;

--至此,bigdata_g 組下的所有用戶擁有了操作bigdata_db庫的所有權限

--創建名為bigdata_read_role的角色,該角色只有只讀權限

CREATE ROLE bigdata_read_role;

--將數據庫bigdata_db的select權限賦給bigdata_read_role角色

GRANT SELECT ON DATABASE bigdata_db TO ROLE bigdata_read_role;

--將集群路徑所有權限賦權給bigdata_admin_role角色

GRANT ALL ON URI 'hdfs://nameservice/user/bigdata' TO bigdata_read_role;

--將bigdata_admin_role角色的權限給到bigdata_g組

GRANT ROLE bigdata_read_role TO GROUP bigdata_g;

--至此,bigdata_g 組下的所有用戶擁有了操作bigdata_db庫的讀權限

--創建一個用戶組hive_g,并給該角色賦權查詢bigdata_db.test_tb的權限

CREATE ROLE hive_read_role;

GRANT ROLE hive_read_role TO GROUP hive_g;

GRANT SELECT ON TABLE bigdata_db.test_tb TO ROLE hive_read_role;

找出用戶ashutosh對表hivejiratable擁有的特權:

0: jdbc:hive2://localhost:10000> show grant user ashutosh on table hivejiratable;

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| database | table | partition | column | principal_name | principal_type | privilege | grant_option | grant_time | grantor |

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| default | hivejiratable | | | ashutosh | USER | DELETE | false | 1398303419000 | thejas |

| default | hivejiratable | | | ashutosh | USER | SELECT | false | 1398303407000 | thejas |

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

找出用戶ashutosh對所有對象具有的特權:

0: jdbc:hive2://localhost:10000> show grant user ashutosh on all;

+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| database | table | partition | column | principal_name | principal_type | privilege | grant_option | grant_time | grantor |

+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| default | hivecontributors | | | ashutosh | USER | DELETE | false | 1398303576000 | thejas |

| default | hivecontributors | | | ashutosh | USER | INSERT | false | 1398303576000 | thejas |

| default | hivecontributors | | | ashutosh | USER | SELECT | false | 1398303576000 | thejas |

| default | hivejiratable | | | ashutosh | USER | DELETE | false | 1398303419000 | thejas |

| default | hivejiratable | | | ashutosh | USER | SELECT | false | 1398303407000 | thejas |

+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

找出所有用戶對表hivejiratable擁有的特權:

0: jdbc:hive2://localhost:10000> show grant on table hivejiratable;

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| database | table | partition | column | principal_name | principal_type | privilege | grant_option | grant_time | grantor |

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

| default | hivejiratable | | | ashutosh | USER | DELETE | false | 1398303419000 | thejas |

| default | hivejiratable | | | ashutosh | USER | SELECT | false | 1398303407000 | thejas |

| default | hivejiratable | | | navis | USER | INSERT | false | 1398303650000 | thejas |

| default | hivejiratable | | | navis | USER | SELECT | false | 1398303650000 | thejas |

| default | hivejiratable | | | public | ROLE | SELECT | false | 1398303481000 | thejas |

| default | hivejiratable | | | thejas | USER | DELETE | true | 1398303380000 | thejas |

| default | hivejiratable | | | thejas | USER | INSERT | true | 1398303380000 | thejas |

| default | hivejiratable | | | thejas | USER | SELECT | true | 1398303380000 | thejas |

| default | hivejiratable | | | thejas | USER | UPDATE | true | 1398303380000 | thejas |

+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539021.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539021.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539021.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 正則替換_5分鐘速覽Python正則表達式常用函數!五分鐘就掌握它!

導讀:正則表達式是處理字符串類型的"核武器",不僅速度快,而且功能強大。本文不過多展開正則表達式相關語法,僅簡要介紹python中正則表達式常用函數及其使用方法,以作快速查詢瀏覽。01 Re概覽Re模塊是python的…

MFC鼠標OnMouseHover使用

ON_WM_MOUSEHOVER消息要生效,要配合ON_WM_MOUSEMOVE一起使用.代碼如下:void CYuButton::OnMouseMove(UINT nFlags, CPoint point) {// TODO: 在此添加消息處理程序代碼和/或調用默認值TRACKMOUSEEVENT tme { 0 };tme.cbSize sizeof(TRACKMOUSEEVENT);tme.dwFlags TME_HOVER…

oracle 分組_大數據分組怎樣才會更快

分組是數據庫的常見運算,無論數據如何準備,通常都需要將所有數據遍歷。建立索引這時是不起作用的,存儲格式才是決定遍歷效率的主要因素。數據庫中數據的存放雖然是二進制格式的,但普遍IO性能差,庫內遍歷快,…

java下拉樹_參數模板中下拉樹級聯下拉數據集查詢

背景說明在參數表單的制作中會遇到各種各樣的需求,如為了方便參數的輸入,需要將輸入框設計成樹狀;若參數模板中有兩個輸入框,每個輸入框對應的參數有某種關系,前一個輸入框輸入參數后,后一個輸入框自動關聯…

java8 list 行轉列_太贊了,Intellij IDEA 竟然把 Java8 的數據流問題這么完美的解決掉了!

使用 IntelliJ IDEA 來幫忙構建你自己的實時模板連接分組《Java 2019 超神之路》《Dubbo 實現原理與源碼解析 —— 精品合集》《Spring 實現原理與源碼解析 —— 精品合集》《MyBatis 實現原理與源碼解析 —— 精品合集》《Spring MVC 實現原理與源碼解析 —— 精品合集》《Spr…

線程run方法和start方法的區別

區別 run() 只是一個普通的方法調用,不會開啟新的線程。 start() 會開啟新的線程,分配新的資源。里面的變量互不影響。 實例 package multithreading;public class MyThread extends Thread {String flag;public MyThread(String flag) {this.flag…

字典的拼接方法

剛看到覺得很簡單 試著用 d3 dict1 dict2 就解決了 結果 報類型錯誤 后來想去遍歷 在組合越想越麻煩 下面分享幾個方法 d1 {"name":"luoyong","age":36}d2 {"class":"AID1712","start":"python"}方…

python反射、閉包、裝飾器_python 閉包裝飾器(一)

一、閉包1.舉例defouter():x 10def inner(): #內部函數print(x) #外部函數的一個變量returninner#調用inner()函數的方法outer()() #法一fouter()f()#法二注意:inner()是局部變量,在全局范圍不可調用(即不能直接調用inner()函數),但是在法二中…

java list集合自定義排序_Java 通過 Comparator comparing 對 list 自定義 排序

摘要:在日常開發中,經常會用到排序算法,這里記錄下日常使用比較多的排序方法,其中包括按指定指定:正序、倒序排序,還有按自定義字段排序的方法,方便日后查看;一:按指定字…

beautifulsoup爬取網頁中的表格_用 Python 爬取網頁

來自公眾號:優達學城Udacity作者:Kerry Parker編譯:歐剃作為數據科學家的第一個任務,就是做網頁爬取。那時候,我對使用代碼從網站上獲取數據這項技術完全一無所知,它偏偏又是最有邏輯性并且最容易獲得的數據…

Java中Runnable和Thread的區別

概述 Runnable 是接口。 Thread 是類,且實現了Runnable接口。 Thread部分源碼 public class Threadimplements Runnable {private static class Caches{static final ConcurrentMap subclassAudits new ConcurrentHashMap();static final ReferenceQueue subcla…

python 神經網絡工具_神經網絡15分鐘入門!使用python從零開始寫一個兩層神經網絡...

本篇是該系列的第三篇,建議在閱讀本篇文章之前先看前兩篇文章。在本文中將使用python實現之前描述的兩層神經網絡,并完成所提出的“象限分類”的問題。需要注意的是,雖然標題叫做神經網絡15分鐘入門,但是到這篇文章,對…

12.3目錄結構

目錄結構 設計好目錄結構 可讀性高可維護性高比如一個Foo項目Foo/--- bin/--- foo--- foo/--- tests/--- _init__.py--- test_main.py--- init.py--- main.py---doc--- conf.py---abc.rst--- setup.py--- requirement.txt--- README簡要解釋一下: bin/:存放項目的一…

pyecharts添加文字_超燃的文字云效果,用Python就能輕松get!

本文轉載自公眾號:數據森麟(ID:shujusenlin)作者:葉庭云鏈接:https://blog.csdn.net/fyfugoyfa/ 01 / 詞云圖詞云圖是一種用來展現高頻關鍵詞的可視化表達,通過文字、色彩、圖形的搭配,產生有沖擊力地視覺效…

同步關鍵詞synchronized

概述 synchronized是java中的一個關鍵字,也就是說是Java語言內置的特性。 synchronized( 一個任意的對象(鎖) ){ 代碼塊中放操作共享數據的代碼。 } public synchronized int getIndex() {return 1;}public static synchronized int getN…

python連接mysql用哪個模塊_Python連接MySQL數據庫之pymysql模塊使用

Python3連接MySQL本文介紹Python3連接MySQL的第三方庫--PyMySQL的基本使用。PyMySQL介紹PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,Python2中則使用mysqldb。Django中也可以使用PyMySQL連接MySQL數據庫。PyMySQL安裝pip install pymysql連接數據…

mysql 創建視圖 主鍵_MySQL數據庫基礎操作命令,本文助你更上一層樓!

今天介紹的是關于Mysql數據庫一些操作的基礎命令用戶與權限創建用戶mysql>create user test identified by BaC321#; 修改密碼5.5版本及以前的命令mysql>set password for testpassowrd(!1A2#3); 5.6及以上命令mysql>update mysql.user set authentication_stringpass…

mysql 聚合函數 怎么用在條件里_MySql 中聚合函數增加條件表達式的方法

Mysql 與聚合函數在一起時候where條件和having條件的過濾時機where 在聚合之前過濾當一個查詢包含了聚合函數及where條件&#xff0c;像這樣的情況select max(cid) from t where t.id<999這時候會先進行過濾&#xff0c;然后再聚合。先過濾出ID《999的記錄&#xff0c;再查找…

drbd(三):drbd的狀態說明

1.幾種獲取狀態信息的方法 drbd有很多獲取信息的方式。在drbd84和之前的版本&#xff0c;大多都使用cat /proc/drbd來獲取信息&#xff0c;多數情況下&#xff0c;這個文件展示的信息對于管理和維護drbd來說已經足夠。 例如以下是drbd84上兩個volume的節點狀態信息&#xff1a;…

Lock的lock()方法

ReentrantLock是JDK唯一實現了Lock接口的類 lock() 是平常使用得最多的一個方法&#xff0c;就是用來獲取鎖。如果鎖已被其他線程獲取&#xff0c;則進行等待。 由于在前面講到如果采用Lock&#xff0c;必須主動去釋放鎖&#xff0c;并且在發生異常時&#xff0c;不會自動釋放鎖…