授權 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授權

在授權程序中,資料庫管理員會取得已驗證使用者授權 ID 的相關資訊。授權 ID 指出使用者可以執行哪些資料庫操作,包括使用者可以存取哪些資料庫物件。在 Db2 中明確宣告的許可允許使用者執行特定動作。

對於授權 ID,可以在各種層級授予許可:

  • 主要 – 主要許可會直接授予授權 ID。

  • 次要 – 次要許可會授予授權 ID 為成員的群組和角色。

  • 公有 – 公有層級是代表組織中每個人的特殊 Db2 群組。

  • 內容敏感 – 這些許可會授予信任的內容角色。

Db2 授權層級

Db2 會在下列層級管理授權單位:

  • 執行個體或系統、關卡:SYSADMSYSCTRLSYSMAINTSYSMON

    • 資料庫層級: DBADM (SQLADM (EXPLAIN)、 WLMADM)、 SECADM(ACCESSCTRL)、 DATAACCESS

      • 結構描述層級: SCHEMAADM (LOAD)ACCESSCTRL、、DATAACCESS

      • 其他結構描述層級權限

Database privilege levels hierarchy showing instance, database, and schema levels with associated permissions.

Db2 支援下列額外的結構描述層級權限:

  • SELECTIN 允許使用者從結構描述中定義的所有資料表或檢視擷取資料列。

  • INSERTIN 允許使用者插入列,並在結構描述中定義的所有資料表或檢視上執行IMPORT公用程式。

  • UPDATEIN 允許使用者在所有資料表或結構描述中定義的可更新檢視上執行 Update陳述式。

  • DELETEIN 允許使用者從結構描述中定義的所有資料表或可更新檢視中刪除資料列。

  • EXECUTEIN 允許使用者執行結構描述中定義的所有使用者定義函數、方法、程序、套件或模組。

  • CREATEIN 允許使用者在結構描述中建立物件。

  • ALTERIN 允許使用者變更結構描述中的物件。

  • DROPIN 允許使用者從結構描述內捨棄物件。

授權 ID

Db2 授權 ID 包含下列項目:

  • 授權 ID 類型

    • 個別使用者 (U)

    • 群組 (G)

    • 角色 (R)

    • 公有 (P)

  • 授權 ID 值

授權 ID,可與其建立關聯的授權和權限,用於識別以及檢查 Db2 授權。

以下是 Db2 中常用的主要授權 ID 術語:

  • 系統授權 ID – 用於進行任何初始授權檢查的授權 ID,例如在CONNECT處理期間檢查CONNECT權限。

  • 工作階段授權 ID – 在CONNECT處理期間執行初始檢查之後,用於任何工作階段授權檢查的授權 ID。若要查看工作階段授權 ID 的目前值,請使用SESSION_USER特殊註冊。

  • 陳述式授權 ID – 用於 SQL 陳述式授權需求的授權 ID (以及群組或角色的相關次要授權 IDs)。這也會用來判斷適用的物件擁有權。它可能會根據 SQL 陳述式的類型和發行內容而有所不同。

授權和權限是透過明確機制取得,例如 GRANTREVOKE陳述式,或隱含機制,例如透過物件擁有權取得的權限。它們也可以透過多個處理內容暫時取得。例如,您已獲得檢視的存取權,該權限會隱含地允許您存取該檢視定義中的物件。此外,套件上的 EXECUTE權限可讓您存取該套件中的任何靜態 SQL。取得臨時授權和權限的另一種方法是使用信任的內容

信任的內容

受信任內容是資料庫物件,可定義資料庫與外部應用程式伺服器或其他資料庫伺服器之間的信任關係。信任關係是根據下列信任屬性:

  • IP 地址

  • 系統授權 ID

  • 資料通訊的加密層級

如果連線符合定義之信任內容物件中的信任屬性,則會建立信任連線。受信任連線有兩種類型:

  • 隱含信任的連線 – 隱含信任的連線可讓使用者繼承在該信任連線定義範圍外無法使用的角色。連線的工作階段授權 ID 會為信任內容定義中宣告的角色提供臨時成員資格。

    下圖顯示允許來自一個 IP 地址的連線的隱含信任連線範例。

     

    ""
    1. dbconnrole 建立角色並授予資料庫的連線。信任的內容是根據使用 authidABC搭配 IP 地址10.10.10.1和預設角色 的連線所ctximpl建立dbconnrole

    2. 使用者可以從 IP 地址 ABC 連線至資料庫10.10.10.1

    3. 使用者ABC無法從 IP 地址 連線10.10.10.2

  • 明確信任的連線 – 明確信任的連線可讓受信任的應用程式伺服器或其他 Db2 資料庫伺服器以有效率的方式切換現有連線上的目前使用者 ID。應用程式伺服器會建立原始連線,並明確請求信任。建立信任之後,應用程式伺服器可以向資料庫伺服器發出請求,以變更任何新工作單位的工作階段授權 ID。用來執行初始連線請求的 ID 只需要伺服器上CONNECT的權限。

    當您的中層伺服器需要代表具有不同存取模式集的多個使用者發出資料庫請求時,例如資料表,明確信任的連線會很有幫助。在資料庫伺服器上建立的信任內容物件可讓中層伺服器建立與資料庫的明確信任連線,然後將連線的目前使用者 ID 切換至對應的使用者 ID,而不需要重新驗證資料庫伺服器。根據使用者授權 ID 在資料庫物件上授予的權限,使用者可以繼續執行操作,保留執行任何特定任務的使用者的真實身分。

    下圖顯示明確信任連線的範例,其中 USER1USER2USER3全都透過 authid 連線APPID

    ""
    1. 信任的內容是根據使用者 USER1USER2和 使用authidAPPID來自 IP 地址10.10.10.1的連線ctxexpl建立USER3

    2. 使用者連線到中層伺服器。

    3. 信任的連線是使用 建立APPID