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/ #注意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角色对角色赋予权限,然后将用户加入到不同角色中。
- 在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
- 在20号机器
[root@dc ~]# kadmin.local -q "addprinc bdpuser/bdpuser"
#kadmin.local -q "xst -k /root/bdpuser.keytab bdpuser/"
# kinit -c /tmp/krb5cc_$UID -kt /root/bdpuser.keytab bdpuser/
# kadmin.local -q "addprinc bdpread/bdpread" # 备用
# kadmin.local -q "xst -k /root/bdpread.keytab bdpread/bdpread@CCOM"
- 使用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/
# klist -c /tmp/krb5cc_$UID # 查看凭据是否对应
# beeline -u 'jdbc:hive2://dc.com:10000/default;principal=hive/;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。;auth-kerberos;' -n hive
0: jdbc:hive2://dc.c.com:10000/d> show databases; #使用7号主机时
- 创建角色
创建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;
- hive命令,请谨慎操作
# beeline -u
Hive命令 创建、删除数据库
创建数据库
hive> CREATE DATABASE cdh_test;
# 请谨慎操作,不提示就删了 hive -e "DROP DATABASE IF EXISTS cdh_test CASCADE;"
- 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 的具体路径
- 3.赋权bdpuser帐号能访问dl_osdata下所有的库表权限(增删改)
- 4.赋权bdpuser帐号访问my_test某一张表
注意在:HUE里面的hive用户,实际是hive集群的HUE管理员,只能修改密码,不能删除,,不能修改用户名,不建议取消权限、或者取消权限是也要格外小心。
用hive登录HUE WEBUI进行设置,账户hive、临时密码同HUE admin的密码
- 创建用户bdpuser和组bdpuser, 临时密码同于HUE admin的密码
全选,必须有hive选项,其他少选,没有测试,请谨慎,但都可随时添加。
- 找到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不能查询
到此这篇sqlldr教程(sqlldr-704)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/12312.html