1. 程式人生 > >hive記錄-cdh配置hive和sentry

hive記錄-cdh配置hive和sentry

組件 讀寫 groupadd 測試 mys user 開啟 訪問 show

1.cdh添加組件-sentry-選擇主機-配置數據庫

2.配置數據庫

1)mysql -uroot -p

2) create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3) grant all privileges on sentry.* to root@‘%‘ identified by ‘123‘ with grant option;

選擇mysql數據庫主機、用戶名、密碼、需要將mysql jdbc驅動拷貝到對應主機下的cm/share/cmf/lib和/opt/cloudera/parcels/CDH-5.10.2-1.cdh5.10.2.p0.5/lib/sentry/lib

測試連接-下一步-創建數據庫表,開啟sentry服務

3.hive配置下勾選sentry和hue配置勾選sentry

4.重啟hive和hue

5.beeline登錄進行授權角色

beeline -u "jdbc:hive2://hadoop03:10000/" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver

1)創建角色並授權給組

執行下面的 sql 語句創建 role、group等:
create role admin_role;
GRANT ALL ON SERVER server1 TO ROLE admin_role;
GRANT ROLE admin_role TO GROUP admin;


GRANT ROLE admin_role TO GROUP hive;

create role test_role;
GRANT ALL ON DATABASE filtered TO ROLE test_role;
GRANT ROLE test_role TO GROUP test;
上面創建了兩個角色:

admin_role,具有管理員權限,可以讀寫所有數據庫,並授權給 admin 和 hive 組(對應操作系統上的組)
test_role,只能讀寫 filtered 數據庫,並授權給 test 組。
因為系統上沒有test用戶和組,所以需要手動創建:
groupadd test
useradd test

測試admin_role角色
使用hive用戶訪問beeline:
$ beeline -u "jdbc:hive2://hadoop03:10000/" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver
set system:user.name;
show roles;
SHOW GRANT ROLE test_role;
SHOW GRANT ROLE admin_role;


測試test_role角色
使用test用戶訪問beeline:
$ beeline -u "jdbc:hive2://hadoop03:10000/" -n test -p test -d org.apache.hive.jdbc.HiveDriver
set system:user.name;

hive記錄-cdh配置hive和sentry