sqlldr教程(sqlldr-704)

sqlldr教程(sqlldr-704)p style margin left 0001pt text align center keberos sentry 授权单表及其他相关操作方法 p 目录权限验证 1 HDFS 上建目录 dldata 2 bdpuser 帐号能在 dldata 下有所有权限 表权限验证 1 hue 里建 hive 库名 dl osdata

大家好,我是讯享网,很高兴认识大家。



 <p style="margin-left:.0001pt;text-align:center;">keberos&#43;sentry授权单表及其他相关操作方法</p> 

讯享网

目录权限验证:

1.HDFS上建目录dldata

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

表权限验证:

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

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

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

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

一、目录权限验证:

1.HDFS上建目录dldata

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

操作方法:

登录datanode节点,

[root@dc ~]# kdestroy -c /tmp/krb5cc\(UID   #销毁凭据&#xff0c;不影响在线系统</p> <p style="margin-left:.0001pt;text-align:left;"># 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                          # 查看凭据是否对应         </p> <p style="margin-left:.0001pt;text-align:left;"># hdfs dfs -ls /</p> <p style="margin-left:.0001pt;text-align:left;">#[root&#64;dc ~]# hdfs dfs -mkdir -p /dldata</p> <p style="margin-left:.0001pt;text-align:left;">[root&#64;dc ~]# hdfs dfs -chown bdpuser:hive /dldata</p> <p style="margin-left:.0001pt;text-align:left;">[root&#64;dc ~]# hdfs storagepolicies -setStoragePolicy -path /dldata -policy One_SSD</p> <p style="margin-left:.0001pt;text-align:left;"># 设置完毕</p> <p style="margin-left:.0001pt;text-align:left;">[root&#64;dc ~]# hdfs dfs -chmod 777 /dldata</p> <p style="margin-left:.0001pt;text-align:left;"># hdfs dfs -chown bdpuser:hive /dldata</p> <p style="margin-left:.0001pt;text-align:left;"></p> <ul><li style="text-align:left;">表权限验证&#xff1a;</li></ul> <p style="margin-left:.0001pt;text-align:left;">以下是基于role角色对角色赋予权限&#xff0c;然后将用户加入到不同角色中。</p> <ol><li style="text-align:left;">在Hive集群<strong><span style="color:#0000ff;"><strong>所有</strong></span></strong>节点创建两个用户bdpuser、bdpread&#xff08;7或14两个节点&#xff09;&#xff1a;</li></ol> <p style="margin-left:.0001pt;text-align:left;">&#xff1a;root的操作系统ssh命令</p> <p style="margin-left:.0001pt;text-align:justify;">useradd bdpread                             #&#xff08;只read&#xff09;</p> <p style="margin-left:.0001pt;text-align:justify;">passwd bdpread                              #</p> <p style="margin-left:.0001pt;text-align:justify;">useradd bdpuser                              #&#xff08;write&#xff09;全权利</p> <p style="margin-left:.0001pt;text-align:justify;">passwd bdpuser                              #</p> <p style="margin-left:.0001pt;text-align:justify;">gpasswd -a bdpread hive                       #归于操作系统hive组</p> <p style="margin-left:.0001pt;text-align:justify;">gpasswd -a bdpuser hive</p> <p style="margin-left:.0001pt;text-align:left;"></p> <ol><li style="text-align:left;">在20号机器</li></ol> <p style="margin-left:.0001pt;text-align:justify;">[root&#64;dc ~]# kadmin.local -q &#34;addprinc bdpuser/bdpuser&#34;</p> <p style="margin-left:.0001pt;text-align:justify;">#kadmin.local -q &#34;xst -k /root/bdpuser.keytab bdpuser/bdpuser&#64;C.COM&#34;</p> <p style="margin-left:.0001pt;text-align:justify;"># 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”

  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&#64;CEAIR.COM</p> <p style="margin-left:.0001pt;text-align:left;"># 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&gt; 

# 显示数据库命令:

0: jdbc:hive2://dc.com:10000/d&gt; 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&gt; 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&gt; 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不能查询

小讯
上一篇 2025-05-17 23:25
下一篇 2025-05-10 14:50

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170104.html