当前位置:网站首页 > SQL数据库编程 > 正文

sqlldr教程(sqlldr-704)



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角色对角色赋予权限,然后将用户加入到不同角色中。

  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/"

# 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/

# 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号主机时

  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不能查询

到此这篇sqlldr教程(sqlldr-704)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • sql数据库基础知识(sql数据库基础知识点总结)2025-03-13 18:36:06
  • mysql查询锁表怎么办(mysql查询被锁的表)2025-03-13 18:36:06
  • mysql学习笔记--单张表上的增删改查2025-03-13 18:36:06
  • mysql的学习笔记2025-03-13 18:36:06
  • MySQL 多表查询与事务的操作2025-03-13 18:36:06
  • sql文件转换成csv显示不全(sql文件转换word)2025-03-13 18:36:06
  • sql文件格式(sql文本格式)2025-03-13 18:36:06
  • jdbc连接数据库代码(jdbc连接sql数据库步骤代码)2025-03-13 18:36:06
  • pymysql怎么安装pycharm(pymysql怎么安装到anancoda)2025-03-13 18:36:06
  • mysql导入sql文件过大(mysql数据库导入sql文件不成功解决办法!)2025-03-13 18:36:06
  • 全屏图片