隨筆-314  評(píng)論-209  文章-0  trackbacks-0
          Sentry權(quán)限控制通過Beeline(Hiveserver2 SQL 命令行接口)輸入Grant 和 Revoke語句來配置。語法跟現(xiàn)在的一些主流的關(guān)系數(shù)據(jù)庫很相似。需要注意的是:當(dāng)sentry服務(wù)啟用后,我們必須使用beeline接口來執(zhí)行hive查詢,Hive Cli并不支持sentry。 CREATE ROLE Statement CREATE ROLE語句創(chuàng)建一個(gè)可以被賦權(quán)的角色。權(quán)限可以賦給角色,然后再分配給各個(gè)用戶。一個(gè)用戶被分配到角色后可以執(zhí)行該角色的權(quán)限。 只有擁有管理員的角色可以create/drop角色。默認(rèn)情況下,hive、impala和hue用戶擁有管理員角色。 CREATE ROLE [role_name]; DROP ROLE Statement DROP ROLE語句可以用來從數(shù)據(jù)庫中移除一個(gè)角色。一旦移除,之前分配給所有用戶的該角色將會(huì)取消。之前已經(jīng)執(zhí)行的語句不會(huì)受到影響。但是,因?yàn)閔ive在執(zhí)行每條查詢語句之前會(huì)檢查用戶的權(quán)限,處于登錄活躍狀態(tài)的用戶會(huì)話會(huì)受到影響。 DROP ROLE [role_name]; GRANT ROLE Statement GRANT ROLE語句可以用來給組授予角色。只有sentry的管理員用戶才能執(zhí)行該操作。 GRANT ROLE role_name [, role_name] TO GROUP (groupName) [,GROUP (groupName)] REVOKE ROLE Statement REVOKE ROLE語句可以用來從組移除角色。只有sentry的管理員用戶才能執(zhí)行該操作。 REVOKE ROLE role_name [, role_name] FROM GROUP (groupName) [,GROUP (groupName)] GRANT (PRIVILEGE) Statement 授予一個(gè)對(duì)象的權(quán)限給一個(gè)角色,該用戶必須為sentry的管理員用戶。 GRANT (PRIVILEGE) [, (PRIVILEGE) ] ON (OBJECT) (object_name) TO ROLE (roleName) [,ROLE (roleName)] REVOKE (PRIVILEGE) Statement 因?yàn)橹挥姓J(rèn)證的管理員用戶可以創(chuàng)建角色,從而只有管理員用戶可以取消一個(gè)組的權(quán)限。 REVOKE (PRIVILEGE) [, (PRIVILEGE) ] ON (OBJECT) (object_name) FROM ROLE (roleName) [,ROLE (roleName)] GRANT (PRIVILEGE) ... WITH GRANT OPTION 在cdh5.2中,你可以委托給其他角色來授予和解除權(quán)限。比如,一個(gè)角色被授予了WITH GRANT OPTION的權(quán)限可以GRANT/REVOKE同樣的權(quán)限給其他角色。因此,如果一個(gè)角色有一個(gè)庫的所有權(quán)限并且設(shè)置了 WITH GRANT OPTION,該角色分配的用戶可以對(duì)該數(shù)據(jù)庫和其中的表執(zhí)行GRANT/REVOKE語句。 GRANT (PRIVILEGE) ON (OBJECT) (object_name) TO ROLE (roleName) WITH GRANT OPTION 只有一個(gè)帶GRANT選項(xiàng)的特殊權(quán)限的角色或者它的父級(jí)權(quán)限可以從其他角色解除這種權(quán)限。一旦下面的語句執(zhí)行,所有跟其相關(guān)的grant權(quán)限將會(huì)被解除。 REVOKE (RIVILEGE) ON (BJECT) (bject_name) FROM ROLE (roleName) Hive目前不支持解除之前賦予一個(gè)角色 WITH GRANT OPTION 的權(quán)限。要想移除WITH GRANT OPTION、解除權(quán)限,可以重新去除 WITH GRANT OPTION這個(gè)標(biāo)記來再次附權(quán)。 SET ROLE Statement SET ROLE語句可以給當(dāng)前會(huì)話選擇一個(gè)角色使之生效。一個(gè)用戶只能啟用分配給他的角色。任何不存在的角色和當(dāng)前用戶不能使用的角色是不能生效的。如果沒有使用任何角色,用戶將會(huì)使用任何一個(gè)屬于他的角色的權(quán)限。 選擇一個(gè)角色使用: To enable a specific role: 使用所有的角色: To enable a specific role: 關(guān)閉所有角色 SET ROLE NONE; SHOW Statement 顯示當(dāng)前用戶擁有庫、表、列相關(guān)權(quán)限的數(shù)據(jù)庫: SHOW DATABASES; 顯示當(dāng)前用戶擁有表、列相關(guān)權(quán)限的表; SHOW TABLES; 顯示當(dāng)前用戶擁有SELECT權(quán)限的列: SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name]; 顯示當(dāng)前系統(tǒng)中所有的角色(只有管理員用戶可以執(zhí)行): SHOW ROLES; 顯示當(dāng)前影響當(dāng)前會(huì)話的角色: SHOW CURRENT ROLES; 顯示指定組的被分配到的所有角色(只有管理員用戶和指定組內(nèi)的用戶可以執(zhí)行) SHOW ROLE GRANT GROUP (groupName); SHOW語句可以用來顯示一個(gè)角色被授予的權(quán)限或者顯示角色的一個(gè)特定對(duì)象的所有權(quán)限。 顯示指定角色的所有被賦予的權(quán)限。(只有管理員用戶和指定角色分配到的用戶可以執(zhí)行)。下面的語句也會(huì)顯示任何列級(jí)的權(quán)限。 SHOW GRANT ROLE (roleName); 顯示指定對(duì)象的一個(gè)角色的所有被賦予的權(quán)限(只有管理員用戶和指定角色分配到的用戶可以執(zhí)行)。下面的語句也會(huì)顯示任何列級(jí)的權(quán)限。 SHOW GRANT ROLE (roleName) on (OBJECT) (objectName); ----------------------------我也是有底線的-----------------------------
          posted on 2018-09-03 18:19 xzc 閱讀(507) 評(píng)論(0)  編輯  收藏 所屬分類: linux/unix
          主站蜘蛛池模板: 同德县| 德令哈市| 临泉县| 崇礼县| 成安县| 巍山| 宁乡县| 嘉义市| 九寨沟县| 滨海县| 微山县| 尤溪县| 鄢陵县| 颍上县| 星子县| 鸡西市| 库伦旗| 锦州市| 天长市| 通河县| 和龙市| 闸北区| 中卫市| 临潭县| 六枝特区| 京山县| 庆安县| 富蕴县| 兴宁市| 景谷| 宿松县| 尼木县| 镶黄旗| 阳谷县| 涪陵区| 聂拉木县| 清水河县| 林甸县| 兴安盟| 青阳县| 绥芬河市|