Authorization - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Authorization

認可プロセスでは、データベースマネージャーは認証されたユーザーの認可 ID に関する情報を取得します。認可 ID は、ユーザーがアクセスできるデータベースオブジェクトなど、ユーザーが実行できるデータベースオペレーションを示します。Db2 内で明示的に宣言されたアクセス許可により、ユーザーは特定のアクションを実行できます。

認可 ID の場合、アクセス許可はさまざまなレベルで付与できます。

  • プライマリ – プライマリアクセス許可は、認可 ID に直接付与されます。

  • セカンダリ – セカンダリアクセス許可は、認可 ID がメンバーであるグループとロールに付与されます。

  • パブリック – パブリックレベルは、組織内のすべてのユーザーを表す特別な Db2 グループです。

  • コンテキスト依存 – これらのアクセス許可は、信頼されたコンテキストロールに付与されます。

Db2 権限レベル

Db2 は、次のレベルで権限を管理します。

  • インスタンス、またはシステム、レベル: SYSADMSYSCTRLSYSMAINTSYSMON

    • データベースレベル: DBADM (SQLADMEXPLAIN)、 SECADM (WLMADMACCESSCTRLDATAACCESS

      • スキーマレベル: SCHEMAADM (LOADACCESSCTRL、、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 用語です。

  • システム認可 IDCONNECT処理中のCONNECT権限の確認など、最初の認可チェックを実行するために使用される認可 ID。

  • セッション認可 IDCONNECT処理中に実行された初期チェックの後、セッション認可チェックに使用される認可 ID。セッション認可 ID の現在の値を表示するには、SESSION_USER特別なレジスターを使用します。

  • ステートメント認可 ID – SQL ステートメントの認可要件に使用される認可 ID (グループまたはロールの関連付けられたセカンダリ認可 IDs とともに)。これは、必要に応じてオブジェクトの所有権を判断するためにも使用されます。SQL ステートメントのタイプと発行先のコンテキストによって異なる場合があります。

権限と権限は、 GRANTREVOKEステートメントなどの明示的なメカニズム、またはオブジェクトの所有権を通じて取得した権限などの暗黙的なメカニズムによって取得されます。また、複数の処理コンテキストを通じて一時的に取得することもできます。たとえば、ビューへのアクセス権が付与され、そのビュー定義のオブジェクトへのアクセスが暗黙的に許可されます。また、パッケージに対する EXECUTE 権限により、そのパッケージ内の静的 SQL にアクセスできます。一時的な権限と特権を取得するもう 1 つの方法は、信頼されたコンテキストを使用することです。

信頼できるコンテキスト

信頼されたコンテキストは、データベースと外部アプリケーションサーバーまたは別のデータベースサーバーとの間の信頼関係を定義するデータベースオブジェクトです。信頼関係は、次の信頼属性に基づいています。

  • IP アドレス

  • システム認可 ID

  • データ通信の暗号化レベル

接続が、定義された信頼されたコンテキストオブジェクト内の信頼属性と一致する場合、信頼された接続が確立されます。信頼された接続には 2 つのタイプがあります。

  • 暗黙的な信頼された接続 – 暗黙的な信頼された接続により、ユーザーは、その信頼された接続定義の範囲外では利用できないロールを継承できます。接続のセッション認可 ID には、信頼されたコンテキスト定義で宣言されたロールへの一時的なメンバーシップが付与されます。

    次の図は、1 つの IP アドレスからの接続のみを許可する暗黙的な信頼された接続の例を示しています。

     

    ""
    1. ロールdbconnroleが作成され、データベースへの接続が付与されます。信頼されたコンテキストctximplは、IP アドレス 10.10.10.1 とデフォルトのロール authidABCを使用して接続に基づいて作成されますdbconnrole

    2. ユーザーは IP アドレス からデータベースに接続ABCできます10.10.10.1

    3. ユーザーは IP アドレス から接続ABCできません10.10.10.2

  • 明示的な信頼された接続 – 明示的な信頼された接続により、信頼されたアプリケーションサーバーまたは別の Db2 データベースサーバーは、既存の接続の現在のユーザー ID を効率的に切り替えることができます。アプリケーションサーバーは、明示的な信頼リクエストを使用して元の接続を確立します。信頼が確立されると、アプリケーションサーバーはデータベースサーバーにリクエストを発行して、新しい作業単位のセッション認可 ID を変更できます。初期接続リクエストの実行に使用される ID には、サーバーに対するCONNECT権限のみが必要です。

    明示的な信頼された接続は、テーブルなどのさまざまなデータベースオブジェクト間で異なるアクセスパターンのセットを持つ複数のユーザーに代わってデータベースリクエストを発行する必要がある中間層サーバーがある場合に役立ちます。データベースサーバー上に作成された信頼されたコンテキストオブジェクトにより、中間層サーバーはデータベースへの明示的な信頼された接続を確立し、データベースサーバーに再認証することなく、接続の現在のユーザー ID を対応するユーザー ID に切り替えることができます。ユーザー認可 ID のデータベースオブジェクトに付与された権限に基づいて、ユーザーは引き続きオペレーションを実行し、特定のタスクを実行するユーザーの実際の ID を保持できます。

    次の図は、USER1、、USER2および USER3がすべて を介して接続する明示的な信頼された接続の例を示していますauthidAPPID

    ""
    1. 信頼されたコンテキストctxexplは、ユーザー USER1、、USER2および 10.10.10.1の IP アドレスauthidAPPIDからの を使用した接続に基づいて作成されますUSER3

    2. ユーザーは中間層サーバーに接続します。

    3. 信頼された接続は を使用して確立されますAPPID