マップされたプロキシ・ユーザーへの接続

マップされたプロキシ・ユーザーを使用してDBシステムに接続するには、最初にMySQLプロキシされたユーザーをIAMグループにマップしてから、マップされたプロキシ・ユーザーを使用してDBシステムに接続します。

  1. MySQLプロキシされたユーザーをIAMグループにマップして、MySQLユーザーのアイデンティティおよび権限を取得します。IAMグループへのMySQLプロキシ・ユーザーのマッピングを参照してください。
  2. マップされたMySQLプロキシ・ユーザーを使用してDBシステムに接続します。「マップされたプロキシ・ユーザーへの接続」を参照してください。

IAMグループへのMySQLプロキシ・ユーザーのマッピング

MySQLプロキシ・ユーザーをIAMグループにマップして、DBシステムのMySQL Serverへのアクセス権を付与します。

コマンドライン・クライアントの使用

MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、MySQLプロキシ対象ユーザーをIAMグループにマップします。

このタスクでは次が必要です:
  • IAMグループのOCIDと、グループが定義されているテナンシ。
  • 実行中のDBシステム。
  • コンピュート・インスタンスまたはローカル・マシンからDBシステムへのコマンドライン・アクセス権を付与する、正しく構成されたVCN。
  • 正しく構成されたコマンドライン・クライアント。
  • authentication_ociプラグインの使用に必要な設定については、前提条件を参照してください。
次を実行して、MySQLプロキシ対象ユーザー、<pUser1><pUser2>および<pUserN>をそれぞれIAMグループ、<IAMGroup1OCID><IAMGroup2OCID>および<IAMGroupNOCID>にマップします:
ノート

任意の数のMySQLプロキシ・ユーザーを作成して、IAMグループにマップできます。
  1. プロキシにMySQLユーザー、<pUser1><pUser2>および<pUserN>を作成します。
    CREATE USER <pUser1> IDENTIFIED BY <password> ACCOUNT LOCK;
    CREATE USER <pUser2> IDENTIFIED BY <password> ACCOUNT LOCK;
    CREATE USER <pUserN> IDENTIFIED BY <password> ACCOUNT LOCK;
  2. GRANT文を使用して、MySQLプロキシ対象ユーザーに必要な権限(データベース権限、表権限、列権限など)を付与します。GRANT文を参照してください。
    必要な権限を持つMySQLプロキシ・ユーザー、<pUser1>, <pUser2>および<pUserN>が作成されます。
  3. MySQLプロキシ・ユーザーをIAMグループにマップします:
    CREATE USER ''@'<Hostname>' IDENTIFIED WITH 'authentication_oci'
    AS '{"tenancy": "<TenancyOCID>",
    "group_mapping": {"<IAMGroup1OCID>": "<pUser1>",
                      "<IAMGroup2OCID>": "<pUser2>",
                      "<IAMGroupNOCID>": "<pUserN>" }}';
    IAMユーザーが複数のIAMグループの一部で、これらのIAMグループを別のMySQLプロキシ対象ユーザーにマップする場合、IAMユーザーは、group_mappingフィールドに定義されている最初のMySQLプロキシ対象ユーザー(IAMユーザーが属するIAMグループに対応する)にマップされます。たとえば、IAMユーザーが<IAMGroup2OCID><IAMGroupNOCID>の両方の一部である場合、IAMユーザーが<IAMGroup2OCID>の一部である最初のIAMグループに対応する最初のMySQLプロキシ・ユーザー<pUser2>にマップされます。
    • CREATE USER: 正しい資格証明を使用して<Hostname>から接続できる匿名ユーザーを作成します。ホストは、特定のホストまたはホストのグループに制限できます。CREATE USERを参照してください。
    • <Hostname>: ユーザーが接続を開始するホスト名を指定します。

      ユーザー名とホスト名の組合せは、テナンシごとに一意である必要があります。あるグループ・マッピング・リクエストで''@'hostname1'をテナンシにマップした場合、別のテナンシへの別のリクエストでこのユーザー名とホスト名の組合せを再利用することはできません。別のテナンシへの複数のマッピングを実行するには、別のユーザー名とホスト名の組合せ(''@'hostname2'など)を使用します。

    • authentication_oci: MySQL Serverの認証プラグインの名前を指定します。
    • tenancy: ユーザーおよびDBシステムが存在するテナンシのOCIDを指定します。1つのCREATE USER文につき、1つのテナンシを指定できます。
    • group_mapping: プロキシ・ユーザー名に対するグループOCIDのリストを指定します。グループOCIDは、tenancyパラメータで定義されたテナンシに属している必要があります。別のテナンシからグループをマップするには、必要なテナンシ、グループおよびユーザーを使用してCREATE USERコマンドを再度実行します。
  4. ステップ3で作成した匿名ユーザーにプロキシ権限を付与します。
    GRANT PROXY ON '<pUser1>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUser2>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUserN>' TO ''@'<Hostname>';
MySQLプロキシ対象ユーザー<pUser1><pUser1>および<pUserN>は、それぞれIAMグループ<IAMGroup1OCID><IAMGroup2OCID>および<IAMGroupNOCID>にマップされるため、IAMグループ・メンバーは、MySQLプロキシ対象ユーザーに割り当てられているすべてのアイデンティティおよび権限でMySQL Serverにアクセスできます。

マップされたプロキシ・ユーザーへの接続

マップされたプロキシ・ユーザーでDBシステムに接続します。マップされたプロキシ・ユーザーは、MySQLプロキシ対象ユーザーのアイデンティティと権限を引き継ぎます。ローカル、フェデレーテッドおよびプロビジョニングされたユーザーは、IAMセキュリティ・トークンを使用してDBシステムに接続できます。ただし、APIキー・ペアを使用してDBシステムに接続できるのは、ローカルおよびプロビジョニングされたユーザーのみです。

コマンドライン・クライアントの使用

MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、マップされたプロキシ・ユーザーでDBシステムに接続します。

このタスクでは、次のものがあることを想定しています:
  • 実行中のDBシステム。
  • 構成ファイル。SDKおよびCLIの構成ファイルを参照してください。
  • コンピュート・インスタンスまたはローカル・マシンからDBシステムへのコマンドライン・アクセス権を付与する、正しく構成されたVCN。
  • マップされたプロキシ・ユーザーのアイデンティティ・プロバイダ・ドメインからのユーザーOCIDまたはユーザーID。
  • authentication_ociプラグインの使用に必要な設定については、前提条件を参照してください。
マップされたプロキシ・ユーザーを使用してDBシステムに接続するには、次のいずれかのステップを実行します:
  1. MySQLクライアントから: 次のコマンドを実行します:
    mysql -h <DBSystemEndpointIPAddress> --port <PortNumber> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> -u <UserOCIDOrUserIDFromIdp>
    • h: DBシステムのエンドポイントのIPアドレスを指定します。
    • port: DBシステムがリスニングしているポートを指定します。デフォルト値は3306です。
    • oci-config-file: (オプション)構成ファイルの場所を指定します。このオプションを指定しない場合、MySQLクライアントは、他のすべてのオペレーティング・システムの構成をデフォルトの場所(Windowsシステムの場合は%HOMEDRIVE%%HOMEPATH%\.oci\config 、その他すべてのオペレーティング・システムの場合は~/.oci/config)から読み取ります。
    • authentication-oci-client-config-profile: (オプション)構成ファイルで指定する構成プロファイルの名前を指定します。構成オプションMySQLクライアントが認証に使用する必要があります。このオプションを指定しない場合、MySQLクライアントは、DEFAULTプロファイルに記載されている構成オプションを読み取ります。
    • u: ローカル、フェデレーテッドまたはプロビジョニングされたユーザーのどちらに接続するかに応じて、アイデンティティ・プロバイダ・ドメインからOCID (Oracle Cloud Identifier)またはユーザーIDを指定します:
      • ローカル・ユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • フェデレーテッド・ユーザー: アイデンティティ・プロバイダ・ドメインからユーザーIDを指定します。
      • APIキーをプロビジョニングしたユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • IAMセキュリティ・トークンをプロビジョニングしたユーザー: アイデンティティ・プロバイダ・ドメインのユーザーIDを指定します。
  2. MySQLシェルから 8.0: 次のコマンドを実行します:
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp>: ローカル、フェデレーテッドまたはプロビジョニングされたユーザーのどちらに接続するかに応じて、アイデンティティ・プロバイダ・ドメインからOCID (Oracle Cloud Identifier)またはユーザーIDを指定します:
      • ローカル・ユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • フェデレーテッド・ユーザー: アイデンティティ・プロバイダ・ドメインからユーザーIDを指定します。
      • APIキーをプロビジョニングしたユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • IAMセキュリティ・トークンをプロビジョニングしたユーザー: アイデンティティ・プロバイダ・ドメインのユーザーIDを指定します。
    • <Hostname>: DBシステムのエンドポイントのIPアドレスを指定します。
    • auth-method=authentication_oci_client: リクエストの認証に使用されるクライアント・プラグインの名前を指定します。MySQLシェルではデフォルトのCLI構成のみが使用されます。
      ノート

      この認証方法では、クラシックMySQLプロトコルのみがサポートされます。
    ノート

    MySQL Shell 8.0.33以降では、oci.configFileオプションを使用して構成ファイルの場所を構成できます。
  3. MySQLシェル8.1以降から: 次のコマンドを実行します:
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp>: ローカル、フェデレーテッドまたはプロビジョニングされたユーザーのどちらに接続するかに応じて、アイデンティティ・プロバイダ・ドメインからOCID (Oracle Cloud Identifier)またはユーザーIDを指定します:
      • ローカル・ユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • フェデレーテッド・ユーザー: アイデンティティ・プロバイダ・ドメインからユーザーIDを指定します。
      • APIキーをプロビジョニングしたユーザー: ローカル・ユーザーのIAMユーザーOCIDを指定します。
      • IAMセキュリティ・トークンをプロビジョニングしたユーザー: アイデンティティ・プロバイダ・ドメインのユーザーIDを指定します。
    • <Hostname>: DBシステムのエンドポイントのIPアドレスを指定します。
    • oci-config-file: (オプション)構成ファイルの場所を指定します。このオプションを指定しない場合、MySQLシェルは、他のすべてのオペレーティング・システムの構成をデフォルトの場所(Windowsシステムの場合は%HOMEDRIVE%%HOMEPATH%\.oci\config 、その他すべてのオペレーティング・システムの場合は~/.oci/config)から読み取ります。
    • authentication-oci-client-config-profile: (オプション)構成ファイルで指定する構成プロファイルの名前を指定します。構成ファイルの構成オプションMySQLシェルは認証に使用します。このオプションを指定しない場合、MySQLシェルは、DEFAULTプロファイルに記載されている構成オプションを読み取ります。
    • auth-method=authentication_oci_client: リクエストの認証に使用されるクライアント・プラグインの名前を指定します。
      ノート

      この認証方法では、クラシックMySQLプロトコルのみがサポートされます。
マップされたプロキシ・ユーザー<UserOCIDOrUserIDFromIdp>は、DBシステムに接続されています。