日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

hive 时间转字符串_07697.0.3如何在Kerberos环境下用Ranger完成对Hive的行过滤及列脱敏...

發布時間:2025/4/5 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive 时间转字符串_07697.0.3如何在Kerberos环境下用Ranger完成对Hive的行过滤及列脱敏... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文檔編寫目的

本篇文章主要介紹如何在CDP DC7.0.3集群中使用Ranger在Hive中進行行過濾及列脫敏,行級別的過濾相當于一個強制性的where子句,例如在訂單表中,員工僅被允許查看自己所在地區的訂單,其他區域的無法查看。列脫敏可以對某些敏感信息的列進行數據屏蔽,例如身份證號可以屏蔽中間的八位。

  • 測試環境

1.操作系統Redhat7.6

2.CDP DC7.0.3

3.集群已啟用Kerberos

4.使用root用戶操作

使用Ranger配置Hive中的行過濾

2.1 對表配置單個行過濾條件

在配置Hive中的行過濾前,需要確保授權的用戶/用戶組已有對要過濾的表的訪問權限,即在授權給ranger_user1用戶對表t1的行過濾策略前,ranger_user1需要對t1有訪問權限。

1.配置ranger_user1對表t1的訪問策略

配置完成后保存

2.使用ranger_user1查詢t1表

用戶ranger_test1對表t1有select權限,一共查詢出7條記錄

3.配置行過濾策略

配置完成后保存

4.使用用戶ranger_test1再次訪問t1表

可以看到,此時name=Tom的那條數據已經被過濾,查詢結果只有6條數據。

2.2 對表配置多個行過濾條件

針對同一個表中可以配置多個行過濾條件,例如每個租戶只能看到自己的數據行,下面測試對同一個表配置多個行過濾條件。

1.在所有節點創建一個新的測試用戶ranger_user2,并創建Kerberos用戶

2.修改訪問表t1的策略,以及行過濾策略

·訪問策略修改,加入ranger_user2

·行過濾策略修改,加入對ranger_user2的過濾條件

3.使用ranger_user2查詢t1表

可以看到ranger_user2無法查看到name=Eric的這一條數據

4.再次使用ranger_user1查詢t1表

可以看到ranger_user1仍然無法查看到name=Tom的這一條數據

由此可見,針對同一個表配置的多個行過濾條件均生效。

使用Ranger配置Hive中的列脫敏

Ranger的列屏蔽功能可以近乎實時地保護Hive中的敏感數據,可以通過設置策略,動態屏蔽或匿名化敏感的數據列,例如可以屏蔽一列的前四個或后四個字符,也可以將整列數據都屏蔽,下面會演示屏蔽的各種規則。

準備一張測試表,數據如下:

3.1 Redact

該方式是將所有字母用x代替,所有的數字字符用n代替。

1.新建列脫敏策略,使用password列進行測試

點擊Add添加策略

2.使用ranger_user1進行測試,需要注意的是列脫敏的策略也是基于該用戶能夠訪問t1表的前提才能生效。

可以看到,除了一行數據中的特殊字符外,其余的數字和字母都進行了相應的替換

3.2 Partial mask: show last 4

該方式是僅顯示最后四個字符

1.修改策略,使用phone數據列進行測試

修改完成后保存策略

2.查詢t1表進行測試

由上圖可見,手機號這一列只顯示了最后四個字符

3.3 Partial mask: show first 4?

該方式是僅顯示最前面四個字符

1.修改策略,使用phone列進行測試

2.查詢t1表進行測試

3.4 Hash

將所有字符替換為整個單元格的值對應的哈希

1.修改策略,使用name列進行測試

修改完成后保存策略

2.查詢t1表進行測試

3.5 Nullify

將所有字符替換為NULL值

1.修改策略,使用name列進行測試

2.查詢t1表進行測試

3.6 Date

僅顯示日期字符串的年份部分,并且默認月份和日期為01/01

1.修改策略,使用create_date列進行測試

2.查詢t1表進行測試

由上圖可見,日期一列只顯示了年份,月份和日期使用了01-01進行代替。

3.7 Custom

該方式指定自定義的值或表達式,同時也可以使用任何有效的自定義的UDF

1.修改策略,使用phone列進行測試,屏蔽掉中間的四位數字

2.查詢t1表進行測試

如上圖可見,phone對應的數據中間的四位數字都被屏蔽了。

總結

1.Hive的行過濾可以對同一張表針對不同用戶配置多個條件,可以滿足實際場景的很多需要,例如在訪問該表時不同的租戶只能看到自己的數據。

2.Hive的行過濾有助于簡化Hive查詢。配置了行過濾相當于提供默認的where子句,Hive每次嘗試訪問數據時都會應用該條件,這有助于簡化Hive查詢的編寫,不需要再將where子句添加到原本的查詢語句中。

3.Hive的列脫敏中每個列都應具有單獨的屏蔽策略,同一個策略只能針對一個列,在處理訪問請求時,會按照策略中條件的順序進行屏蔽。

4.Hive的列脫敏不支持通配符的匹配。如表和字段不能配置為*值。

5.在使用Date進行列脫敏時,Hive中對應字段的格式需要是時間類型,在測試中使用的date類型。

6.在對列進行脫敏時,除了使用指定的選項外,還可以用自定義的表達式或者UDF來進行脫敏。

總結

以上是生活随笔為你收集整理的hive 时间转字符串_07697.0.3如何在Kerberos环境下用Ranger完成对Hive的行过滤及列脱敏...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。