系統存取控制¶
Presto 將向協調器驗證身份的主體概念與負責執行查詢的使用者名稱分開。例如,在執行 Presto CLI 時,可以使用 --user
選項指定 Presto 使用者名稱。
預設情況下,Presto 協調器允許任何主體以任何 Presto 使用者身份執行查詢。在安全的環境中,這可能不是理想的行為,並且可能需要自訂。
實作¶
SystemAccessControlFactory
負責建立 SystemAccessControl
實例。它還定義了 SystemAccessControl
名稱,該名稱由管理員在 Presto 組態中使用。
SystemAccessControl
實作具有多項責任
驗證給定主體是否有權以特定使用者身份執行查詢。
判斷給定使用者是否可以變更給定系統屬性的值。
跨所有目錄執行存取檢查。這些存取檢查發生在任何連接器特定的檢查之前,因此可以拒絕
ConnectorAccessControl
否則將允許的權限。
SystemAccessControl
和 SystemAccessControlFactory
的實作必須包裝為外掛程式並安裝在 Presto 叢集上。
設定¶
在實作 SystemAccessControl
和 SystemAccessControlFactory
的外掛程式安裝在協調器上後,它會使用 etc/access-control.properties
檔案進行設定。除了 access-control.name
以外的所有屬性都是 SystemAccessControl
實作專有的。
Presto 使用 access-control.name
屬性來根據 SystemAccessControlFactory.getName()
返回的名稱尋找已註冊的 SystemAccessControlFactory
。其餘屬性會以對應的形式傳遞給 SystemAccessControlFactory.create()
。
設定檔範例
access-control.name=custom-access-control
custom-property1=custom-value1
custom-property2=custom-value2