Leo Yeh's Blog

SAS Viya (117)

教學目標

初步了解 SAS Viya 平台中兩大授權系統的基本概念。

重點概念

首先授權主要是用於確定哪些使用者能夠存取哪些資源,在 SAS Viya 平台中主要有兩個授權系統,當受驗證的使用者未指定任何權限登入至 SAS Viya 平台中的 SAS Environment Manager 時,預設則會在瀏覽列中看到資料、伺服器、內容、工作和我的認證等項目,其中資料的授權對應為 Cloud Analytic Services (CAS) 授權系統,而內容的授權對應為一般授權系統,並且每個系統皆使用不同的模型來保護不同類別的資源。此外這兩個系統皆能夠共享同一個身份提供者,並且預設禁止 (隱含) 任何未被允許授權的存取權限,以及皆能夠使用 SAS Environment Manager 或命令提示工具管理這兩個授權系統。

接著 Cloud Analytic Services (CAS) 授權系統和一般授權系統的詳細比較資訊,請參考下表。

特性 CAS 授權系統 一般授權系統
基礎 資料庫管理系統風格的存取控制。 以屬性為基礎的存取控制。
物件 CAS 物件,像是資料館和資料表。 一般物件,像是資料夾和報表。
繼承方式 主要透過物件的層次結構,像是從資料館至其資料表。 透過容器層次結構,像是從檔案資料夾至其成員。
優先權 按照物件的層次結構 (最接近的優先),然後按照身份類型 (使用者優先),最後按照設定類型 (拒絕優先)。 按照設定類型 (禁止總是優先)。
特殊存取 主要以篩選器進行列層級的存取。 主要以布林規則展開式進行有條件的存取。
最高權限 超級使用擁有最高權限。 SAS 管理員群組擁有最高權限。

此外在 CAS 授權系統中,成員資格,繼承和列層級篩選器皆會影響存取,至於在一般授權系統中,有關請求使用者,目標資源和環境的資訊皆會影響存取,每個存取請求皆有一個上下文,其中包括環境資料,像是時間和設備類型,並且能夠使用條件來結合環境限制。

再來 CAS 授權系統主要透過「sas-admin」命令提示工具,以「cas」參數進行授權管理,而一般授權系統主要透過「sas-admin」命令提示工具,以「authorization」參數進行授權管理,像是我們能夠透過「sas-admin cas tables list-controls —server serverA —caslib caslibA —table tableA」命令輸出 tableA 的直接存取控制列表,更多使用範例請參考官方文件,以及我們能夠透過「sas-admin authorization show-rule —id d85144aa-79dc-4852-b949-645cc5ff8ffc —details」命令顯示特定規則的詳細屬性,更多使用範例請參考官方文件。此外若是企業有複雜權限管理的需求時,則我們就能透過「sas-admin」命令提示工具進行客製開發來滿足需求,像是企業資訊人員從資料庫產生 CSV 資料檔之後,我們再透過 Python 程式碼整合「sas-admin」命令提示工具進行網域使用者權限同步、群組權限同步和物件授權同步的自動化整合應用。

最後 SAS Viya 平台其本質上為開放,它將是一個非常強大分析平台,能夠透過提供的命令提示工具進行客製化開發,但是若是實際用過「sas-admin」命令提示工具,就能發現為了解決簡單的情境應用就會需要執行更複雜的任務,此時會整合許多個「sas-admin」命令提示工具,非常麻煩,因此 SAS 官方就提供「pyviyatools」基於「sas-admin」命令提示工具的套件,讓程式開發人員直接透過 Python 程式針對 SAS Viya 平台的授權系統進行自動化操作。此外這個「pyviyatools」套件是開放源始碼,所以若當我們發現「pyviyatools」套件無法解決企業客戶所面臨複雜的整合問題,則建議參考 Github 專案中相關的 Python 程式碼進行彈性調整,以利解決企業客戶所面臨複雜的整合問題。

相關資源

⬅️ Go back