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)建一個可以被賦權(quán)的角色。權(quán)限可以賦給角色,然后再分配給各個用戶。一個用戶被分配到角色后可以執(zhí)行該角色的權(quán)限。

只有擁有管理員的角色可以create/drop角色。默認(rèn)情況下,hive、impala和hue用戶擁有管理員角色。

CREATE ROLE [role_name];

DROP ROLE Statement

DROP ROLE語句可以用來從數(shù)據(jù)庫中移除一個角色。一旦移除,之前分配給所有用戶的該角色將會取消。之前已經(jīng)執(zhí)行的語句不會受到影響。但是,因為hive在執(zhí)行每條查詢語句之前會檢查用戶的權(quán)限,處于登錄活躍狀態(tài)的用戶會話會受到影響。

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

授予一個對象的權(quán)限給一個角色,該用戶必須為sentry的管理員用戶。

GRANT    
    (PRIVILEGE) [, (PRIVILEGE) ]    
    ON (OBJECT) (object_name)