Sentry權限控制通過Beeline(Hiveserver2 SQL 指令行接口)輸入Grant 和 Revoke語句來配置。文法跟現在的一些主流的關系資料庫很相似。需要注意的是:當sentry服務啟用後,我們必須使用beeline接口來執行hive查詢,Hive Cli并不支援sentry。
CREATE ROLE語句建立一個可以被賦權的角色。權限可以賦給角色,然後再配置設定給各個使用者。一個使用者被配置設定到角色後可以執行該角色的權限。
隻有擁有管理者的角色可以create/drop角色。預設情況下,hive、impala和hue使用者擁有管理者角色。
DROP ROLE語句可以用來從資料庫中移除一個角色。一旦移除,之前配置設定給所有使用者的該角色将會取消。之前已經執行的語句不會受到影響。但是,因為hive在執行每條查詢語句之前會檢查使用者的權限,處于登入活躍狀态的使用者會話會受到影響。
GRANT ROLE語句可以用來給組授予角色。隻有sentry的管理者使用者才能執行該操作。
REVOKE ROLE語句可以用來從組移除角色。隻有sentry的管理者使用者才能執行該操作。
授予一個對象的權限給一個角色,該使用者必須為sentry的管理者使用者。
因為隻有認證的管理者使用者可以建立角色,進而隻有管理者使用者可以取消一個組的權限。
在cdh5.2中,你可以委托給其他角色來授予和解除權限。比如,一個角色被授予了WITH GRANT OPTION的權限可以GRANT/REVOKE同樣的權限給其他角色。是以,如果一個角色有一個庫的所有權限并且設定了 WITH GRANT OPTION,該角色配置設定的使用者可以對該資料庫和其中的表執行GRANT/REVOKE語句。
隻有一個帶GRANT選項的特殊權限的角色或者它的父級權限可以從其他角色解除這種權限。一旦下面的語句執行,所有跟其相關的grant權限将會被解除。
Hive目前不支援解除之前賦予一個角色 WITH GRANT OPTION 的權限。要想移除WITH GRANT OPTION、解除權限,可以重新去除 WITH GRANT OPTION這個标記來再次附權。
SET ROLE語句可以給目前會話選擇一個角色使之生效。一個使用者隻能啟用配置設定給他的角色。任何不存在的角色和目前使用者不能使用的角色是不能生效的。如果沒有使用任何角色,使用者将會使用任何一個屬于他的角色的權限。
選擇一個角色使用:
使用所有的角色:
關閉所有角色
顯示目前使用者擁有庫、表、列相關權限的資料庫:
顯示目前使用者擁有表、列相關權限的表;
顯示目前使用者擁有SELECT權限的列:
顯示目前系統中所有的角色(隻有管理者使用者可以執行):
顯示目前影響目前會話的角色:
顯示指定組的被配置設定到的所有角色(隻有管理者使用者和指定組内的使用者可以執行)
SHOW語句可以用來顯示一個角色被授予的權限或者顯示角色的一個特定對象的所有權限。
顯示指定角色的所有被賦予的權限。(隻有管理者使用者和指定角色配置設定到的使用者可以執行)。下面的語句也會顯示任何列級的權限。
顯示指定對象的一個角色的所有被賦予的權限(隻有管理者使用者和指定角色配置設定到的使用者可以執行)。下面的語句也會顯示任何列級的權限。
本文轉自 bxst 51CTO部落格,原文連結:http://blog.51cto.com/13013670/1944036