keberos+sentry授权单表及其他相关操作方法(CDP7.1.7许可证)

keberos+sentry授权单表及其他相关操作方法

目录权限验证:

1.HDFS上建目录dldata

2.bdpuser帐号能在dldata下有所有权限

表权限验证:

1.hue里建hive库名dl_osdata,下面建三张测试表,表数据存储路径为/dldata/dl_osdata/test/表名/文件

2.hue里建hive库名temp,下建三张测试表

3.赋权bdpuser帐号能访问dl_osdata下所有的库表权限(增删改)

4.赋权bdpuser帐号访问temp某一张表

一、目录权限验证:

1.HDFS上建目录dldata

2.bdpuser帐号能在dldata下有所有权限

操作方法:

登录datanode节点,

[root@dc ~]# kdestroy -c /tmp/krb5cc_$UID   #销毁凭据,不影响在线系统

# klist -c /tmp/krb5cc_$UID                          # 查看凭据是否对应

# find / -maxdepth 10 -name "hdfs.keytab" -exec ls -lh {} +  #查找相关最近最新hdfs.keytab

# kinit -c /tmp/krb5cc_$UID -kt /run/cloudera-scm-agent/process/1867-hdfs-DATANODE-refresh/hdfs.keytab hdfs/dc.c.com@C.COM              #注意1867的数字应替换,且每台机器的数字都有所不同。此命令仅限麒麟服务器集群里面的机器。

# klist -c /tmp/krb5cc_$UID                          # 查看凭据是否对应         

# hdfs dfs -ls /

#[root@dc ~]# hdfs dfs -mkdir -p /dldata

[root@dc ~]# hdfs dfs -chown bdpuser:hive /dldata

[root@dc ~]# hdfs storagepolicies -setStoragePolicy -path /dldata -policy One_SSD

# 设置完毕

[root@dc ~]# hdfs dfs -chmod 777 /dldata

# hdfs dfs -chown bdpuser:hive /dldata

  • 表权限验证:

以下是基于role角色对角色赋予权限,然后将用户加入到不同角色中。

  1. 在Hive集群所有节点创建两个用户bdpuser、bdpread(7或14两个节点):

:root的操作系统ssh命令

useradd bdpread                             #(只read)

passwd bdpread                              #

useradd bdpuser                              #(write)全权利

passwd bdpuser                              #

gpasswd -a bdpread hive                       #归于操作系统hive组

gpasswd -a bdpuser hive

  1. 在20号机器

[root@dc ~]# kadmin.local -q "addprinc bdpuser/bdpuser"

#kadmin.local -q "xst -k /root/bdpuser.keytab bdpuser/bdpuser@C.COM"

# kinit -c /tmp/krb5cc_$UID -kt /root/bdpuser.keytab bdpuser/bdpuser@C.COM

# kadmin.local -q "addprinc bdpread/bdpread"              # 备用

# kadmin.local -q "xst -k /root/bdpread.keytab bdpread/bdpread@CCOM"

  1. 使用Sentry管理员用户hive通过beeline客户端连接HiveServer2,(7或14节点)然后操作:

[root@dc ~]# find / -maxdepth 10 -name "hive.keytab" -exec ls -lh {} +   #查找hive.keytab文件,选择就近文件大于0的,如下:1987可能随节点、时间变

/run/cloudera-scm-agent/process/1987-hive-HIVESERVER2/hive.keytab

[root@dc ~]# kdestroy -c /tmp/krb5cc_$UID   #销毁凭据,不影响在线系统

[root@dc ~]# kinit -c /tmp/krb5cc_$UID -kt /run/cloudera-scm-agent/process/1987-hive-HIVESERVER2/hive.keytab hive/dc.com@CEAIR.COM

# klist -c /tmp/krb5cc_$UID                          # 查看凭据是否对应

# beeline -u 'jdbc:hive2://dc.com:10000/default;principal=hive/dc.c.com@C.COM;auth-kerberos;' -n hive

#登录正常如下:

0: jdbc:hive2://dc.com:10000/d> 

# 显示数据库命令:

0: jdbc:hive2://dc.com:10000/d> show databases;

或:使用7号主机

# beeline -u 'jdbc:hive2://dc.com:10000/default;principal=hive/dc.c。com@C.COM;auth-kerberos;' -n hive

0: jdbc:hive2://dc.c.com:10000/d> show databases;   #使用7号主机时

  1. 创建角色

创建Role(reader_role,writer_role):注意:admin_role不能动,不能删除

create role reader_role;

create role writer_role;

将role授予用户组:

GRANT ROLE reader_role TO GROUP bdpread;

GRANT ROLE writer_role TO GROUP bdpuser;

可以尝试授予数据库,但是HUE不接受此结果,可用在beeline查看设置结果

为role赋予privilege:

GRANT select ON DATABASE *_test TO ROLE reader_role;

GRANT insert ON DATABASE *_test TO ROLE writer_role;

查看所有role(管理员)

SHOW ROLES;

查看指定用户组的role(管理员)

SHOW ROLE GRANT GROUP bdpread;

SHOW ROLE GRANT GROUP bdpuser;

查看指定ROLE的具体权限(管理员)

SHOW GRANT ROLE writer_role;

SHOW GRANT ROLE reader_role;

  1. hive命令,请谨慎操作

# beeline -u

Hive命令 创建、删除数据库

创建数据库

hive> CREATE DATABASE cdh_test;

### hive -e "DROP DATABASE IF EXISTS cdh_test CASCADE;"    # 请谨慎操作,不提示就删了

  1. 12

HUE登录名:hive密码同admin(保留),hive用户就是HUE WEBUI里面的管理员

1.hue里建hive库名dl_osdata,下面建三张测试表,表数据存储路径为/dldata/dl_osdata/test/表名/文件

查询里输入:

CREATE DATABASE dl_osdata;

USE dl_osdata;

CREATE EXTERNAL TABLE dl_osdata.my_test1

(

    id INT,

    name STRING,

    value DOUBLE

)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

LOCATION '/dldata/dl_osdata/test/my_test1/my_test1_00001';

插入数据

INSERT INTO TABLE dl_osdata.my_test1 VALUES(1, 'Alice',200.33);

INSERT INTO TABLE dl_osdata.my_test1 VALUES(2, '2Alice',2200.33);

INSERT INTO TABLE dl_osdata.my_test1 VALUES(3, '3Alice',3200.33);

### 其他以此类推,并要修改LOCATION 的具体路径

  1. 3.赋权bdpuser帐号能访问dl_osdata下所有的库表权限(增删改)
  2. 4.赋权bdpuser帐号访问my_test某一张表

注意在:HUE里面的hive用户,实际是hive集群的HUE管理员,只能修改密码,不能删除,,不能修改用户名,不建议取消权限、或者取消权限是也要格外小心。

用hive登录HUE WEBUI进行设置,账户hive、临时密码同HUE admin的密码

  1. 创建用户bdpuser和组bdpuser, 临时密码同于HUE admin的密码

全选,必须有hive选项,其他少选,没有测试,请谨慎,但都可随时添加。

  1. 找到HUE的安全选项

点选“安全”选项后,按照下图进行Roles、“组”选“BDPUSER”,右边出现“ writer_role

在“ writer_role”后点击左边的三角

点最下面的“+”

分别是库、存储路径、具体权限,其中库表权限为:ALL、CREATE、REFRESH、INSERT、SELECT

还有其他操作

例如进到“安全”就点右边“+”号,会出现如下图:先选择“组”,再选“名称”,再点下面的“+”

系统中涉及的“server=server1 ”不要动,这是hive集群里面的一个参数

用hive登录HUE WEBUI进行设置后的结果如下图:

现在注销hive后,用bdpuser登录,就可以具体处理数据了

具体测试:测试不能select的效果

用bdpuser登录,初始密码同HUE的admin、hive的密码

my_test.test1不能查询

my_test.test2是可以查询

my_test.test3不能查询

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值