接続の確立
コネクタ内で利用可能なオブジェクトは、"cdata.mysql" モジュールからアクセスできます。モジュールのオブジェクトを直接使用するには:
- モジュールを以下のようにインポートします。
import cdata.mysql as mod
- 接続を確立するには、以下のような適切な接続文字列を使用してコネクタオブジェクトからconnect() メソッドを呼び出します。
mod.connect("User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;")
MySQL への接続
次のプロパティを設定し、MySQL データに接続します。- Server:MySQL データベースをホスティングしているサーバーのホスト名またはIP アドレス。
- Port:MySQL データベースをホスティングしているサーバーのポート。
- Database(オプション):MySQL Server に接続する場合のデフォルトデータベース。設定されていない場合、MySQL は使用可能なすべてのデータベースからテーブルを返します。
MySQL への認証
MySQL は次の認証をサポートします。- 標準
- NT Lan Manager(NTLM)
- LDAP
- SSL
- SSH
- Azure
- AWS
標準認証
標準認証で認証するには、AuthScheme をPassword に設定し、以下のプロパティを設定します。- User:認証するMySQL ユーザーのユーザー名。
- Password:認証するMySQL ユーザーに関連付けられたパスワード。
NTLM
NTLM を使用して認証するには、AuthScheme をNTLM に設定します。デフォルトでは、本製品 は、実行中のPC のドメインまたはMySQL インスタンスを実行しているマシンで使用されているドメインのいずれかを使用して、 ユーザー資格情報とNTLM ドメインを自動的に決定します。 ユーザー資格情報を取得するために、本製品 は現在のNTLM ユーザーを読み込みます。
異なるドメインを指定したい場合は、異なるログイン資格情報を提供するか、あるいは以下のオプションプロパティのいずれかまたはすべてを用いてターゲットNTLM バージョンを変更します。
- User:認証するNTLM ユーザー。
- Password:認証するNTLM ユーザーのパスワード。
- Domain:接続するドメイン名。
- NTLMVersion:本製品 で使用されるNTLM のバージョン。有効な値は1(デフォルト)および2です。
LDAP
LDAPユーザーとして認証するには、AuthScheme をLDAP に設定します。LDAP 認証情報はデフォルトで自動検出されます。 別のユーザーとアカウントを指定したい場合は、 以下のオプションプロパティを設定します。
- User:ログインするユーザー。
- Password:ユーザーのパスワード。
SSL
SSL 認証を活用してMySQL データに安全に接続するには、以下のプロパティを設定します。- SSLClientCert:クライアント証明書のための証明書ストア名。クライアントとサーバーの両方のマシンでトラストストアとキーストアが保持される2-way SSL の場合に使用されます。
- SSLClientCertPassword:クライアント証明書ストアパスワード。証明書ストアがパスワードで保護されている場合は必須です。
- SSLClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
- SSLClientCertType:; クライアントストアの証明書タイプ。
- SSLServerCert:サーバーが受け入れ可能な証明書。
SSH
SSH 経由でリモートマシンを認証し、MySQL データにアクセスするには、以下のプロパティを設定します。- SSHClientCert:クライアント証明書のための証明書ストア名。
- SSHClientCertPassword:クライアント証明書ストアがパスワードで保護されている場合、この値をストアのパスワードに設定。
- SSHClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
- SSHClientCertType:クライアントストアの証明書タイプ。
- SSHPassword:SSH サーバーに認証するためのパスワード。
- SSHPort:SSH 操作に使用されるポート。
- SSHServer:認証を試行中のSSH 認証サーバー。
- SSHServerFingerPrint:接続を試行中のホストの検証に使用される、SSH サーバ-の指紋。
- SSHUser:SSH サーバーへの認証に使用するユーザー名。
Azure 上のMySQL
Azure AD にホストされているMySQL データベースは、Azure AD ユーザー(Azure ユーザークレデンシャルを使用)、Azure MSI(マネージドサービスID を使用)、またはAzure パスワードで認証できます。 以下の表に、3つの認証方式すべてに必要な接続パラメータを示します。パラメータ | 設定値 | 注記 | |
Azure AD ユーザー | AzureTenant | MySQL が設置されているMicrosoft Online テナント。 | 注記1 参照。 |
AuthScheme | AzureAD | 注記2 参照。 | |
Azure MSI | AzureTenant | MySQL が設置されているMicrosoft Online テナント。 | 注記1 参照。 |
AuthScheme | AzureMSI | MySQL がAzure VM 上で実行されている場合に最もよく使用されます。 | |
OAuthClientId | マネージドID のclient_identity | マネージドID のトークンを取得する場合、またはVM にユーザー割り当てのマネージドID が複数ある場合に必要です。 | |
Azure パスワード | AuthScheme | AzurePassword | Azure 認証情報を使用して直接接続するには、Azure への接続に使用するアカウントのユーザーとパスワードを指定します。 |
注記
- AzureTenant は、一般的にcompanyname.microsoft.com の形式で提供されますが、
テナントId を指定することもできます。(テナントId は、Azure ポータル のAzure Active Directory -> プロパティページに表示されるディレクトリId と同じものです。)
OAuthGrantType がCODE(デフォルト)に設定されている場合、ユーザーが複数のテナントに属していない限り、AzureTenant は通常必要ありません。OAuthGrantType がCLIENT に設定されている場合、AzureTenant は必須です。
- AzureAD AuthScheme は一般的に、必要なOAuth 資格情報を確立するために、カスタムOAuth アプリケーションと共に使用されます。これらは通常、アカウント識別子またはクライアントID と、アカウントパスワードまたはクライアントシークレットの形をとります。
AWS 上のMySQL
IAM ロールまたはEC2 ロールのいずれかを使用して、AWS でホストされているMySQL データベースに接続できます。
AWS IAM Roles
AuthScheme をAwsIAMRoles に設定します。
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。AWS ルートユーザーのAWSAccessKey およびAWSSecretKey を指定している場合、ロールは使用できない場合があります。
AWS ロールとして認証するには、次のプロパティを設定します。
- AWSAccessKey:ロールを担うIAM ユーザーのアクセスキー。
- AWSSecretKey:ロールを担うIAM ユーザーのシークレットキー。
- AWSRoleARN:認証したいロールのRole ARN を指定。これにより、本製品 は指定されたロールの資格情報を取得しようと試みます。
多要素認証が必要な場合は、以下を指定します。
- CredentialsLocation:MFA クレデンシャルが保存される設定ファイルの場所。詳しくは、接続文字列オプションのCredentials File Location のページを参照してください。
- MFASerialNumber:MFA デバイスが使用されている場合は、そのシリアル番号。
- MFAToken:MFA デバイスから利用できる一時トークン。
Note: 一時的な認証情報の有効期間(デフォルトは3600秒)を制御するには、TemporaryTokenDuration プロパティを設定します。
EC2 Instances
AuthScheme をAwsEC2Roles に設定します。
EC2 インスタンスから本製品 を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、 認証にIAM ロールを使用できます。本製品 は自動的にIAM ロールの認証情報を取得し、それらを使って認証するため、AWSAccessKey およびAWSSecretKey を指定する必要はありません。
認証にIAM ロールも使用している場合は、さらにAWSRoleARN を認証したいロールのRole ARN に設定する必要があります。
IMDSv2 サポート
MySQL 本製品 は、IMDSv2 をサポートしています。IMDSv1 とは異なり、新バージョンでは認証トークンが必須です。エンドポイントおよびレスポンスは、両バージョンで同じです。
IMDSv2 では、MySQL 本製品 はまずIMDSv2 メタデータトークンの取得を試み、それを使用してAWS メタデータエンドポイントを呼び出します。トークンを取得できない場合、本製品 はIMDSv1 を使用します。