在具有企業安全性套件的 HDInsight 中設定 Apache Hive 原則
在本文中,您將了解如何針對 Apache Hive 設定 Apache Ranger 原則。 您可建立兩個 Ranger 原則來限制對 hivesampletable
的存取。 hivesampletable
隨附 HDInsight 叢集。 設定原則之後,您可使用 Excel 和開放式資料庫連接 (ODBC) 驅動程式連線到 HDInsight 中的 Hive 資料表。
必要條件
- 具有企業安全性套件 (ESP) 的 HDInsight 叢集。 如需詳細資訊,請參閱設定具有 ESP 的 HDInsight 叢集。
- 具有企業版 Microsoft 365 應用程式、Office 2016、Office 2013 專業增強版、Excel 2013 獨立版或 Office 2010 專業增強版的工作站。
連線到 Apache Ranger 管理員 UI
若要連線到 Ranger 管理員使用者介面 (UI):
從瀏覽器移至位於
https://CLUSTERNAME.azurehdinsight.net/Ranger/
的 Ranger 管理員 UI,其中CLUSTERNAME
是您的叢集名稱。注意
Ranger 會使用與 Apache Hadoop 叢集不同的認證。 若要避免瀏覽器使用快取的 Hadoop 認證,請使用新的 InPrivate 瀏覽器視窗連線至 Ranger 管理員 UI。
使用叢集系統管理員網域使用者名稱和密碼進行登入:
目前,Ranger 僅適用於 Yarn 和 Hive。
建立網域使用者
如需如何建立 hiveruser1
和 hiveuser2
的資訊,請參閱建立具有 ESP 的 HDInsight 叢集。 在本文中,您會使用兩個使用者帳戶。
建立 Ranger 原則
在這一節中,您會建立兩個 Ranger 原則以供存取 hivesampletable
。 您會提供不同資料行集的選取權限。 兩個使用者都是使用建立具有 ESP 的 HDInsight 叢集中的指示建立。 在下一節中,您會在 Excel 中測試這兩個原則。
若要建立 Ranger 原則:
開啟 Ranger 管理員 UI。 請參閱上一節:連線到 Apache Ranger 管理員 UI。
選取 [Hive] 底下的 [CLUSTERNAME_Hive]。 您會看到兩個預先設定的原則。
選取 [新增原則],並輸入下列值︰
屬性 值 原則名稱 read-hivesampletable-all Hive 資料庫 預設值 table hivesampletable Hive 資料行 * 選取使用者 hiveuser1 權限 select .
注意
如果 [選取使用者] 中未填入網域使用者,請稍後,讓 Ranger 與 Microsoft Entra ID 同步處理。
選取 [新增] 以儲存規則。
重複最後兩個步驟,使用下列屬性建立另一個原則︰
屬性 值 原則名稱 read-hivesampletable-devicemake Hive 資料庫 預設值 table hivesampletable Hive 資料行 clientid、devicemake 選取使用者 hiveuser2 權限 select
建立 Hive ODBC 資料來源
如需如何建立 Hive ODBC 資料來源的指示,請參閱建立 Hive ODBC 資料來源。
屬性 | 說明 |
---|---|
資料來源名稱 | 為資料來源指定名稱。 |
Host | 輸入 CLUSTERNAME.azurehdinsight.net。 例如,使用 myHDICluster.azurehdinsight.net。 |
連接埠 | 使用 443 (此連接埠的範圍是 563 至 443。) |
Database | 使用預設值 |
Hive 伺服器類型 | 選取 [Hive Server 2]。 |
機制 | 選取 [Azure HDInsight 服務]。 |
HTTP 路徑 | 保留為空白。 |
使用者名稱 | 輸入 hiveuser1@contoso158.onmicrosoft.com 。 更新網域名稱 (如果不同的話)。 |
密碼 | 輸入 hiveuser1 的密碼。 |
儲存資料來源之前,請先選取 [測試]。
從 HDInsight 將資料匯入 Excel 中
在最後一個區段中,您已設定兩個原則:hiveuser1
具有所有資料行的選取權限,而 hiveuser2
具有兩個資料行的選取權限。 本節中,您可以模擬兩位使用者將資料匯入 Excel 中。
在 Excel 中開啟新的或現有的活頁簿。
在 [資料] 索引標籤上,移至 [取得資料]>[從其他來源]>[從 ODBC],以開啟 [從 ODBC] 視窗。
從下拉式清單中,選取您在上一節建立的資料來源名稱,然後選取 [確定]。
第一次使用時,[ODBC 驅動程式] 對話方塊隨即開啟。 從左側功能表中選取 [Windows]。 然後,選取 [連線] 以開啟 [導覽器] 視窗。
等候
Select Database and Table
對話框開啟。 此步驟可能需要幾秒鐘的時間。選取 [hivesampletable]>[下一步]。
選取 [完成]。
在 [匯入資料] 對話方塊中,您可以變更或指定查詢。 若要這樣做,請選取 [屬性]。 此步驟可能需要幾秒鐘的時間。
選取 [定義] 索引標籤。命令文字如下:
SELECT * FROM "HIVE"."default"."hivesampletable"`
透過您定義的 Ranger 原則,
hiveuser1
對所有資料行具有選取權限。 此查詢適用於hiveuser1
的認證,但此查詢不適用於hiveuser2
的認證。選取 [確定] 以關閉 [連接屬性] 對話方塊。
選取 [確定] 以關閉 [匯入資料] 對話方塊。
重新輸入
hiveuser1
的密碼,然後選取 [確定]。 經過數秒後,資料即會匯入至 Excel。 完成後,您會看到 11 行的資料。
測試您在上一節中建立的第二個原則 (read-hivesampletable-devicemake):
在 Excel 中新增工作表。
依照上一個程序匯入資料。 您所做的唯一變更是使用
hiveuser2
(而不是hiveuser1
) 的認證。 此動作失敗,因為hiveuser2
只具有兩個資料行的權限。 您看到下列錯誤:[Microsoft][HiveODBC] (35) Error from Hive: error code: '40000' error message: 'Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [hiveuser2] does not have [SELECT] privilege on [default/hivesampletable/clientid,country ...]'.
依照相同程序匯入資料。 這次使用
hiveuser2
的認證,而且修改 select 陳述式:SELECT * FROM "HIVE"."default"."hivesampletable"
變更為:
SELECT clientid, devicemake FROM "HIVE"."default"."hivesampletable"
完成後,您會看到兩個匯入的資料行。
下一步
- 若要設定具有 ESP 的 HDInsight 叢集,請參閱設定具有 ESP 的 HDInsight 叢集。
- 如需管理具有 ESP 的 HDInsight 叢集,請參閱管理具有 ESP 的 HDInsight 叢集。
- 如需在具有 ESP 的 HDInsight 叢集上使用 Secure Shell (SSH) 執行 Hive 查詢,請參閱使用 SSH 搭配 HDInsight。
- 若要使用 Hive Java 資料庫連線 (JDBC) 來連線 Hive,請參閱使用 Hive JDBC 驅動程式連線到 Azure HDInsight 上的 Apache Hive。
- 若要使用 Hive ODBC 將 Excel 連接到 Hadoop,請參閱使用 Microsoft Hive ODBC 驅動程式將 Excel 連接到 Apache Hadoop。
- 若要使用 Power Query 將 Excel 連接到 Apache Hadoop,請參閱使用 Power Query 將 Excel 連接到 Hadoop。