CData Cloud は、クラウドホスト型のソリューションで、複数の標準サービスやプロトコルにまたがるPostgreSQL へのアクセスを実現します。MySQL またはSQL Server データベースに接続できるアプリケーションであれば、CData Cloud を介してPostgreSQL に接続できます。
CData Cloud により、他のOData エンドポイントや標準SQL Server / MySQL データベースと同じように、PostgreSQL への接続を標準化し、構成することができます。
このページでは、CData Cloud でのPostgreSQL への接続の確立 のガイド、利用可能なリソースに関する情報、および使用可能な接続プロパティのリファレンスについて説明します。
接続の確立 は、CData Cloud にデータベースを作成するためのPostgreSQL への認証方法と必要な接続プロパティの設定方法について示します。
利用可能な標準サービスを経由してPostgreSQL からデータにアクセスする方法と、CData Cloud の管理については、CData Cloud ドキュメント で詳しく説明します。
Database タブで対応するアイコンを選択して、PostgreSQL に接続します。必須プロパティはSettings にリストされています。Advanced タブには、通常は必要ない接続プロパティが表示されます。
PostgreSQL に接続するには、通常次の接続プロパティが必要です。
また、オプションで以下を設定することもできます。
標準認証を使用する場合、PostgreSQL にログイン資格情報で接続するにはAuthScheme をPassword に設定します。
そして、認証するために、認証するユーザに紐づいたPassword を設定します。
Cloud がサポートするパスワード認証スキームのサブタイプは、PostgreSQL サーバー上のpg_hba.conf ファイルで有効化する必要があります。
PostgreSQL サーバーでの認証の設定について、詳しくはPostgreSQL ドキュメントを参照してください。
MD5
Cloud は、MD5 でパスワードを検証することで認証できます。pg_hba.conf ファイルのauth-method をmd5 に設定し、この認証方法を有効にする必要があります。
SASL
Cloud は、SASL(特にSCRAM-SHA-256)でパスワードを検証することで認証できます。pg_hba.conf ファイルのauth-method をscram-sha-256 に設定し、この認証方法を有効にする必要があります。
Microsoft Azure でPostgreSQL への接続に利用できる方法は以下のとおりです。
Web アプリケーションを介したAzure AD への認証には、 常にカスタムOAuth アプリケーションの作成が必要です。
カスタムOAuthアプリケーションの作成の詳細については、Azure AD アプリケーションの作成 を参照してください。
Note: Azure PostgreSQL Flexible サーバーはサポート対象外です。Azure PostgreSQL Single Server インスタンスのみサポートされます。
Azure PostgreSQL インスタンスでActive Directory 管理者が設定されていることを確認します(Active Directory 管理者 -> 管理者の設定)。
次に、接続するには以下を設定します。
AuthScheme をAwsEC2Roles に設定します。
EC2 インスタンスからCloud を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、 認証にIAM ロールを使用できます。Cloud は自動的にIAM ロールの認証情報を取得し、それらを使って認証するため、AWSAccessKey およびAWSSecretKey を指定する必要はありません。
認証にIAM ロールも使用している場合は、さらに以下を指定する必要があります。
PostgreSQL Cloud は、IMDSv2 をサポートしています。IMDSv1 とは異なり、新バージョンでは認証トークンが必須です。エンドポイントおよびレスポンスは、両バージョンで同じです。
IMDSv2 では、PostgreSQL Cloud はまずIMDSv2 メタデータトークンの取得を試み、それを使用してAWS メタデータエンドポイントを呼び出します。トークンを取得できない場合、Cloud はIMDSv1 を使用します。
AuthScheme をAzurePassword に設定します。
Azure 資格情報を使用して直接接続するには、次の接続プロパティを指定します。
PFX ファイルの場合は、代わりに以下のプロパティを設定します。
Azure VM 上でPostgreSQL を実行しており、マネージドID(MSI)認証情報を自動的に取得して接続したい場合は、AuthScheme を AzureMSI に設定します。
VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。
AuthScheme をAwsIAMRoles に設定します。
多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。AWS ルートユーザーのAWSAccessKey およびAWSSecretKey を指定している場合、ロールは使用できない場合があります。
AWS ロールとして認証するには、次のプロパティを設定します。
多要素認証が必要な場合は、以下を指定します。
Note: 一時的な認証情報の有効期間(デフォルトは3600秒)を制御するには、TemporaryTokenDuration プロパティを設定します。
Kerberos 認証は、CData Cloud が接続を試行している際にPostgreSQL サーバーで開始されます。この認証方法を有効化するには、PostgreSQL サーバーでKerberos を設定します。PostgreSQL サーバーでのKerberos 認証の設定を完了したら、Cloud からKerberos 認証を行う方法についてKerberos の使用 を参照してください。
Kerberos 経由でPostgreSQL への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。
Cloud は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。
MIT Kerberos 資格情報キャッシュファイル
このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。
このオプションは、KRB5CCNAME がシステムに作成されている必要があります。
MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:
チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。
Cloud はキャッシュファイルを使用してPostgreSQL に接続するためのKerberos チケットを取得します。
Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、Cloud は指定されたキャッシュファイルを使用してPostgreSQL に接続するためのKerberos チケットを取得します。
Keytab ファイル
お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。
この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。
User およびPassword
お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。
この方法を使用するには、User およびPassword プロパティを、PostgreSQL での認証に使用するユーザー / パスワードの組み合わせに設定します。
このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。
TLS を有効化するには、UseSSL をTrue に設定します。
この設定により、Cloud はサーバーとのTLS ネゴシエーションを試みます。サーバー証明書は、デフォルトのシステム信頼済み証明書ストアで検証されます。SSLServerCert 接続プロパティを使用して、証明書の検証方法をオーバーライドできます。
別の証明書を指定するには、SSLServerCert 接続プロパティを参照してください。
PostgreSQL Cloud はクライアント証明書の設定もサポートしています。次を設定すれば、クライアント証明書を使って接続できます。
次のプロパティを設定します。
PostgreSQL から直接データをモデリングするだけでなく、CData Cloud には、Azure がホストするSQL Server へのOAuth 接続を支援するために設計されたストアドプロシージャもいくつか組み込まれています。ストアドプロシージャはここにリストされています。
Cloud は、データソースの型を、スキーマで使用可能な対応するデータ型にマッピングします。以下のテーブルはこれらのマッピングを説明します。
| PostgreSQL | Data スキーマ |
| abstime | string |
| aclitem | string |
| bigint | long |
| bigserial | long |
| bit varying | string |
| bit | string |
| boolean | bool |
| box | string |
| bytea | binary |
| char | string |
| character varying | string |
| character | string |
| cid | string |
| cidr | string |
| circle | string |
| date | date |
| daterange | string |
| double precision | float |
| gtsvector | string |
| inet | string |
| int2vector | string |
| int4range | string |
| int8range | string |
| integer | int |
| json | string |
| jsonb | binary |
| line | string |
| lseg | string |
| macaddr8 | string |
| macaddr | string |
| money | decimal |
| name | string |
| numeric | decimal |
| numrange | string |
| oid | string |
| oidvector | string |
| path | string |
| pg_dependencies | string |
| pg_lsn | string |
| pg_ndistinct | string |
| pg_node_tree | string |
| point | string |
| polygon | string |
| real | float |
| refcursor | string |
| regclass | string |
| regconfig | string |
| regdictionary | string |
| regnamespace | string |
| regoper | string |
| regoperator | string |
| regproc | string |
| regprocedure | string |
| regrole | string |
| regtype | string |
| reltime | string |
| serial | int |
| smallint | int |
| smallserial | int |
| smgr | string |
| text | string |
| tid | string |
| time with time zone | string |
| time without time zone | time |
| timestamp with time zone | datetime |
| timestamp without time zone | datetime |
| tinterval | string |
| tsquery | string |
| tsrange | string |
| tstzrange | string |
| tsvector | string |
| txid_snapshot | string |
| uuid | uuid |
| xid | string |
| xml | string |
ストアドプロシージャはファンクションライクなインターフェースで、PostgreSQL の単純なSELECT/INSERT/UPDATE/DELETE 処理にとどまらずCloud の機能を拡張します。
ストアドプロシージャは、パラメータのリストを受け取り、目的の機能を実行し、プロシージャが成功したか失敗したかを示すとともにPostgreSQL から関連するレスポンスデータを返します。
| Name | Description |
| GetAdminConsentURL | アプリケーションへのアクセスを許可するために、ドメイン管理者が個別に開く必要がある、管理者の同意のURL を取得します。カスタムOAuth 資格情報を使用している場合のみ必要です。 |
アプリケーションへのアクセスを許可するために、ドメイン管理者が個別に開く必要がある、管理者の同意のURL を取得します。カスタムOAuth 資格情報を使用している場合のみ必要です。
| Name | Type | Description |
| CallbackUrl | String | アプリケーションが認可された後にユーザーがリダイレクトされるURL。この値は、Azure AD アプリ設定内のリダイレクトURL に合致する必要があります。 |
| State | String | 認証コードをリクエストしたときに送信した状態と同じ値。 |
| Name | Type | Description |
| URL | String | ベリファイアトークンを取得してアプリケーションを認可するためにWeb ブラウザに入力される認可URL。 |
| プロパティ | 説明 |
| AuthScheme | 認証で使用されるスキーム。有効な入力値は、Password、AzureAD、AzurePassword、AzureMSI、AwsIAMRoles、AwsEC2Roles、GCPServiceAccount です。 |
| Server | サーバーのホスト名またはIP アドレス。 |
| Database | PostgreSQL データベースの名前。 |
| User | 認証するPostgreSQL ユーザーアカウントのユーザーID を指定します。 |
| Password | 認証するユーザーアカウントのパスワードを指定します。 |
| Port | PostgreSQL サーバーのポート番号。 |
| UseSSL | このフィールドはSSL が有効化されているかどうかを設定します。 |
| Visibility | ユーザーが許可したテーブルのメタデータを、カンマ区切りのクエリのリストとしてフィルタリングします。例えば、SELECT およびINSERT クエリの可視性を制限するには、'SELECT,INSERT' を指定します。有効な値:SELECT、INSERT、UPDATE、DELETE。 |
| プロパティ | 説明 |
| AWSAccessKey | AWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。 |
| AWSSecretKey | AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。 |
| AWSRoleARN | 認証時に使用するロールのAmazon リソースネーム。 |
| AWSExternalId | 他のアカウントでロールを引き受ける際に必要となる一意の識別子。 |
| プロパティ | 説明 |
| AzureTenant | データにアクセスするために使用されるPostgreSQL テナントを、名前(例えば、contoso.omnicrosoft.com)またはID で識別します。(条件付き) |
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthClientSecret | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthGrantType | 選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。 |
| プロパティ | 説明 |
| OAuthJWTCert | JWT 証明書のストア。 |
| OAuthJWTCertType | JWT 証明書を格納するキーストアの種類。 |
| OAuthJWTCertPassword | OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
| プロパティ | 説明 |
| SSHAuthMode | サービスへのSSH トンネルを確立する際に使用される認証方法。 |
| SSHClientCert | SSHUser の認証に使用する証明書。 |
| SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
| SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
| SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
| SSHServer | SSH サーバー。 |
| SSHPort | SSH ポート。 |
| SSHUser | SSH ユーザー。 |
| SSHPassword | SSH パスワード。 |
| SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
| UseSSH | PostgreSQL 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。 |
| プロパティ | 説明 |
| Verbosity | ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。 |
| プロパティ | 説明 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
| IgnoredSchemas | メタデータクエリによって取得されたスキーマのリストからスキーマを非表示にするために使用される、可視性制限フィルタ。例えば、'information_schema, pg_catalog' です。スキーマ名は、大文字・小文字が区別されます。 |
| プロパティ | 説明 |
| AllowPreparedStatement | クエリステートメントを実行前に準備します。 |
| BrowsePartitions | デフォルトでは、provider はメタデータによってスーパーテーブルとそのパーティションを公開します。このプロパティをfalse に設定することで、サブパーティションを非表示にできます。 |
| FetchResultSetMetadata | このフィールドは、provider が、サーバーから返される結果セットカラムのスキーマ名とテーブル名に関するメタデータを取得するかどうかを設定します。 |
| InsertMode | バルクデータを挿入する際に使用する方法を指定します。デフォルトではDML モードが使用されます。 |
| MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
| Timeout | provider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。 |
| TimeZone | サーバーがdatetime / timestamp カラムを返す際に使用するタイムゾーンを設定します。 |
このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AuthScheme | 認証で使用されるスキーム。有効な入力値は、Password、AzureAD、AzurePassword、AzureMSI、AwsIAMRoles、AwsEC2Roles、GCPServiceAccount です。 |
| Server | サーバーのホスト名またはIP アドレス。 |
| Database | PostgreSQL データベースの名前。 |
| User | 認証するPostgreSQL ユーザーアカウントのユーザーID を指定します。 |
| Password | 認証するユーザーアカウントのパスワードを指定します。 |
| Port | PostgreSQL サーバーのポート番号。 |
| UseSSL | このフィールドはSSL が有効化されているかどうかを設定します。 |
| Visibility | ユーザーが許可したテーブルのメタデータを、カンマ区切りのクエリのリストとしてフィルタリングします。例えば、SELECT およびINSERT クエリの可視性を制限するには、'SELECT,INSERT' を指定します。有効な値:SELECT、INSERT、UPDATE、DELETE。 |
認証で使用されるスキーム。有効な入力値は、Password、AzureAD、AzurePassword、AzureMSI、AwsIAMRoles、AwsEC2Roles、GCPServiceAccount です。
string
"Password"
このフィールドは、Password およびUser とともに、サーバーに対して認証をするために使われます。デフォルト値はPassword です。次のオプションを使って、認証スキームを選択してください。
サーバーのホスト名またはIP アドレス。
string
""
PostgreSQL Database をホスティングしているサーバーのホスト名またはIP アドレス。指定されない場合は、デフォルト値 "localhost" が使用されます。
PostgreSQL データベースの名前。
string
""
PostgreSQL Server に接続する場合のデータベース。データベースが提供されていない場合は、ユーザーのデフォルトデータベースが使用されます。
認証するPostgreSQL ユーザーアカウントのユーザーID を指定します。
string
""
認証サーバーは、ユーザーのID を検証するためにUser とPassword の両方を必要とします。
認証するユーザーアカウントのパスワードを指定します。
string
""
認証サーバーは、ユーザーのID を検証するためにUser とPassword の両方を必要とします。
このフィールドはSSL が有効化されているかどうかを設定します。
bool
false
このフィールドは、Cloud がサーバーとのTLS/SSL 接続をネゴシエートするかどうかを設定します。デフォルトでは、Cloud はサーバーの証明書をシステムの信頼できる証明書ストアと照合します。別の証明書を指定するには、SSLServerCert を設定します。
ユーザーが許可したテーブルのメタデータを、カンマ区切りのクエリのリストとしてフィルタリングします。例えば、SELECT およびINSERT クエリの可視性を制限するには、'SELECT,INSERT' を指定します。有効な値:SELECT、INSERT、UPDATE、DELETE。
string
""
デフォルトでは、可視性フィルタリングは適用されません。フィルタリングの値は、大文字・小文字の区別はありません。
このセクションでは、本プロバイダーの接続文字列で設定可能なAWS Authentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AWSAccessKey | AWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。 |
| AWSSecretKey | AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。 |
| AWSRoleARN | 認証時に使用するロールのAmazon リソースネーム。 |
| AWSExternalId | 他のアカウントでロールを引き受ける際に必要となる一意の識別子。 |
AWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。
string
""
AWS アカウントのアクセスキーを見つけるには、次の手順に従います。
AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
string
""
AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
認証時に使用するロールのAmazon リソースネーム。
string
""
AWS の外部で認証する場合は、AWS アカウント認証情報ではなく、ロールを認証に使用するのが 一般的です。AWSRoleARN を入力すると、CData Cloud はAWSAccessKey とAWSSecretKey を直接 使用する代わりに、ロールベースの認証を実行します。この認証を実行するためには、AWSAccessKey と AWSSecretKey を指定する必要があります。RoleARN を設定するときは、AWS ルートユーザーの 認証情報を使用できません。AWSAccessKey およびAWSSecretKey はIAM ユーザーのものである必要があります。
他のアカウントでロールを引き受ける際に必要となる一意の識別子。
string
""
他のアカウントでロールを引き受ける際に必要となる一意の識別子。
このセクションでは、本プロバイダーの接続文字列で設定可能なAzure Authentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AzureTenant | データにアクセスするために使用されるPostgreSQL テナントを、名前(例えば、contoso.omnicrosoft.com)またはID で識別します。(条件付き) |
データにアクセスするために使用されるPostgreSQL テナントを、名前(例えば、contoso.omnicrosoft.com)またはID で識別します。(条件付き)
string
""
テナントは、主にドメイン(例えば、microsoft.com)に関連付けられた、組織のデジタル表現です。 テナントは、Tenant ID(ディレクトリID とも呼ばれる)によって管理されます。これは、Azure リソースへのアクセスや管理権限をユーザーに割り当てる際に指定します。
Azure ポータルでディレクトリID を見つけるには、Azure Active Directory -> プロパティに移動します。
AuthScheme = AzureServicePrincipal またはAzureServicePrincipalCert のいずれかである場合、またはAzureTenant = AzureAD であり、ユーザーが複数のテナントに属している場合は、AzureTenant を指定する必要があります。
このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthClientSecret | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthGrantType | 選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。 |
カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。
string
""
OAuthClientId は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。
カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。
string
""
OAuthClientSecret は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。
選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。
string
"CODE"
ほとんどの場合、デフォルトのグラント種別は変更すべきではありません。 最も一般的なOAuth グラント種別とそれぞれのメリット・デメリットについては、https://oauth.net/2/grant-types/ を参照してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なJWT OAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthJWTCert | JWT 証明書のストア。 |
| OAuthJWTCertType | JWT 証明書を格納するキーストアの種類。 |
| OAuthJWTCertPassword | OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
JWT 証明書のストア。
string
""
クライアント証明書のための証明書ストア名。
OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword でパスワードを指定します。
OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値がある場合で、OAuthJWTCertSubject が設定されている場合は、証明書の検索が始まります。 詳しくは、OAuthJWTCertSubject フィールドを参照してください。
証明書ストアの指定はプラットフォームに依存します。
Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。
| MY | 個人証明書と関連付けられた秘密キーを格納している証明書ストア。 |
| CA | 証明機関の証明書。 |
| ROOT | ルート証明書。 |
| SPC | ソフトウェア発行元証明書。 |
Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。
証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。 PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。
JWT 証明書を格納するキーストアの種類。
string
"PEMKEY_BLOB"
このプロパティには次の値の一つを設定できます。
| USER | Windows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。 Note:この種類はJava では利用できません。 |
| MACHINE | Windows の場合、この証明書ストアがシステムストアであることを指定します。 Note:この種類はJava では利用できません。 |
| PFXFILE | この証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。 |
| PFXBLOB | この証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 |
| JKSFILE | この証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。 Note:この種類はJava のみで利用できます。 |
| JKSBLOB | この証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 Note:この種類はJava のみで利用できます。 |
| PEMKEY_FILE | この証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。 |
| PEMKEY_BLOB | この証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。 |
| PUBLIC_KEY_FILE | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。 |
| PUBLIC_KEY_BLOB | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。 |
| SSHPUBLIC_KEY_FILE | この証明書ストアは、SSH 公開キーを含むファイルの名前です。 |
| SSHPUBLIC_KEY_BLOB | この証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。 |
| P7BFILE | この証明書ストアは、証明書を含むPKCS7 ファイルの名前です。 |
| PPKFILE | この証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。 |
| XMLFILE | この証明書ストアは、XML 形式の証明書を含むファイルの名前です。 |
| XMLBLOB | この証明書ストアは、XML 形式の証明書を含む文字列の名前です。 |
| BCFKSFILE | この証明書ストアは、Bouncy Castle キーストアを含むファイルの名前です。 |
| BCFKSBLOB | この証明書ストアは、Bouncy Castle キーストアを含む文字列(Base-64エンコード)です。 |
| GOOGLEJSON | この証明書ストアは、サービスアカウント情報を含むJSON ファイルの名前です。Google サービスに接続する場合にのみ有効です。 |
| GOOGLEJSONBLOB | この証明書ストアは、サービスアカウントのJSON を含む文字列です。Google サービスに接続する場合にのみ有効です。 |
OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
string
""
このプロパティは、証明書ストアを開くために必要なパスワードを指定します。ただし、ストアの種類がパスワードを必要とする場合に限ります。 パスワードが必要かどうかを判断するには、ご利用の証明書ストアのドキュメントまたは設定を参照してください。
GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーは暗号化されていません。
OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
string
"*"
このプロパティの値は、ストアで一致する証明書を検索するために使用されます。検索プロセスは以下のように動作します。
値を '*' に設定すると、ストアの先頭の証明書が自動的に選択されます。 証明書のサブジェクトは識別名フィールドおよび値のカンマ区切りのリストです。 例:CN=www.server.com, OU=test, C=US, [email protected]。一般的なフィールドには以下のものが含まれます。
| フィールド | 説明 |
| CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
| O | 法人名 |
| OU | 法人の部署名 |
| L | 法人の住所(市町村名) |
| S | 法人の住所(都道府県) |
| C | 国名 |
| E | E メールアドレス |
フィールド値にカンマが含まれる場合は、引用符で囲んでください。例:"O=ACME, Inc."。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。
string
""
TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。
このプロパティは、次のフォームを取ります:
| 説明 | 例 |
| フルPEM 証明書(例では省略されています) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
| 証明書を保有するローカルファイルへのパス。 | C:\cert.cer |
| 公開鍵(例では省略されています) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
| MD5 Thumbprint (hex 値はスペースおよびコロン区切り) | ecadbdda5a1529c58a1e9e09828d70e4 |
| SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。
すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSH プロパティの全リストを提供します。
| プロパティ | 説明 |
| SSHAuthMode | サービスへのSSH トンネルを確立する際に使用される認証方法。 |
| SSHClientCert | SSHUser の認証に使用する証明書。 |
| SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
| SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
| SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
| SSHServer | SSH サーバー。 |
| SSHPort | SSH ポート。 |
| SSHUser | SSH ユーザー。 |
| SSHPassword | SSH パスワード。 |
| SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
| UseSSH | PostgreSQL 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。 |
サービスへのSSH トンネルを確立する際に使用される認証方法。
string
"Password"
SSHUser の認証に使用する証明書。
string
""
公開鍵認証を使用するには、SSHClientCert に有効な秘密鍵が含まれている必要があります。 公開鍵はオプションで、含まれていない場合はCloud が秘密鍵から生成します。 Cloud は公開鍵をサーバーに送信し、ユーザーが公開鍵を認証した場合に接続が許可されます。
SSHClientCertType フィールドは、SSHClientCert により指定されたキーストアの種類を指定します。 ストアがパスワードで保護されている場合は、SSHClientCertPassword でパスワードを指定します。
一部の種類のキーストアは、複数のキーを含むことができるコンテナです。 デフォルトでは、Cloud はストアの最初のキーを選択しますが、SSHClientCertSubject を使用して特定のキーを指定することも可能です。
SSHClientCert キーのパスワード(ある場合)。
string
""
このプロパティは、証明書ベースの認証を使用する場合のSSH トンネリングに必要です。 SSH 証明書がパスワードで保護されたキーストアにある場合、証明書にアクセスするためにこのプロパティを使用してパスワードを指定します。
SSH クライアント証明書のサブジェクト。
string
"*"
証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。
完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。
それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。
"*" に設定すると、証明書ストアの1番目の証明書が選択されます。
証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。
| フィールド | 説明 |
| CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
| O | 法人名 |
| OU | 法人の部署名 |
| L | 法人の住所(市町村名) |
| S | 法人の住所(都道府県) |
| C | 国名 |
| E | Eメールアドレス |
フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。
SSHClientCert 秘密鍵の種類。
string
"PEMKEY_BLOB"
このプロパティには次の値の1つを設定できます。
| 種類 | 説明 | 許容されるBlob 値 |
| MACHINE/USER | Blob 値はサポートされていません。 | |
| JKSFILE/JKSBLOB | base64のみ | |
| PFXFILE/PFXBLOB | PKCS12形式(.pfx)のファイル。証明書と秘密鍵の両方を含む必要があります。 | base64のみ |
| PEMKEY_FILE/PEMKEY_BLOB | PEM 形式のファイル。RSA、DSA、またはOPENSSH の秘密鍵を含む必要があります。オプションで、秘密鍵と一致する証明書を含むことができます。 | base64またはプレーンテキスト。blob をテキストとして入力する場合、改行をスペースに置き換えることができます。 |
| PPKFILE/PPKBLOB | puttygen ツールで作成されたPuTTY 形式の秘密鍵。 | base64のみ |
| XMLFILE/XMLBLOB | .NET のRSA クラスによって生成される形式のXML キー:RSA.ToXmlString(true)。 | base64またはプレーンテキスト。 |
SSH サーバー。
string
""
SSH サーバー。
SSH ポート。
string
"22"
SSH ポート。
SSH ユーザー。
string
""
SSH ユーザー。
SSH パスワード。
string
""
SSH パスワード。
SSH サーバーのフィンガープリント。
string
""
SSH サーバーのフィンガープリント。
PostgreSQL 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。
bool
false
デフォルトでは、Cloud はPostgreSQL に直接接続しようとします。 このオプションを有効にすると、Cloud は代わりにSSHServer とのSSH 接続を確立し、その接続を経由してPostgreSQL への接続をトンネリングします。
このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。
| プロパティ | 説明 |
| Verbosity | ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。 |
ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。
string
"1"
このプロパティは、Cloud がログファイルに含める詳細レベルを定義します。 Verbosity レベルを高くするとログに記録される情報の詳細が増えますが、ログファイルが大きくなり取り込まれるデータが増えるためパフォーマンスが低下する可能性があります。
デフォルトのVerbosity レベルは1で、通常の運用にはこれが推奨されます。 より高いVerbosity レベルは主にデバッグを目的としています。 各レベルの詳細については、ログ を参照してください。
LogModules プロパティと組み合わせることで、Verbosity は特定の情報カテゴリに対するログの詳細度を調整できます。
このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。
| プロパティ | 説明 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
| IgnoredSchemas | メタデータクエリによって取得されたスキーマのリストからスキーマを非表示にするために使用される、可視性制限フィルタ。例えば、'information_schema, pg_catalog' です。スキーマ名は、大文字・小文字が区別されます。 |
レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
string
""
利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
メタデータクエリによって取得されたスキーマのリストからスキーマを非表示にするために使用される、可視性制限フィルタ。例えば、'information_schema, pg_catalog' です。スキーマ名は、大文字・小文字が区別されます。
string
""
デフォルトでは、制限は適用されません。BrowsableSchemas が指定されている場合、このプロパティは無効です。
このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。
| プロパティ | 説明 |
| AllowPreparedStatement | クエリステートメントを実行前に準備します。 |
| BrowsePartitions | デフォルトでは、provider はメタデータによってスーパーテーブルとそのパーティションを公開します。このプロパティをfalse に設定することで、サブパーティションを非表示にできます。 |
| FetchResultSetMetadata | このフィールドは、provider が、サーバーから返される結果セットカラムのスキーマ名とテーブル名に関するメタデータを取得するかどうかを設定します。 |
| InsertMode | バルクデータを挿入する際に使用する方法を指定します。デフォルトではDML モードが使用されます。 |
| MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
| Timeout | provider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。 |
| TimeZone | サーバーがdatetime / timestamp カラムを返す際に使用するタイムゾーンを設定します。 |
クエリステートメントを実行前に準備します。
bool
true
AllowPreparedStatement プロパティがfalse に設定されている場合は、ステートメントは実行されるたびに解析されます。たくさんの異なるクエリを一回だけ実行する場合は、このプロパティをfalse に設定すると便利です。
同じクエリを繰り返し実行する場合は、このプロパティをデフォルトのTrue のままにしておくとパフォーマンスが向上します。クエリを準備することで、同じクエリを何度も繰り返しコンパイルすることを避けられます。ただし、プリペアドステートメントの場合、ステートメントが準備される間Cloud は接続をアクティブかつオープンに保つ必要があります。
デフォルトでは、provider はメタデータによってスーパーテーブルとそのパーティションを公開します。このプロパティをfalse に設定することで、サブパーティションを非表示にできます。
bool
true
このプロパティは、バージョン10以降を実行しているサーバーに有効です。
このフィールドは、provider が、サーバーから返される結果セットカラムのスキーマ名とテーブル名に関するメタデータを取得するかどうかを設定します。
bool
false
デフォルトでは、Cloud はテーブル名やスキーマ名などの結果セットのカラムに関する詳細情報を提供するようサーバーに要求しません。これは、Cloud を介して追加のメタデータクエリを発行する必要があり、シナリオによってはクエリのパフォーマンスに本質的な影響を与える可能性があります。結果セットカラムに関する詳細な説明情報が必要な場合に、このプロパティをTrue に設定することを検討してください。
バルクデータを挿入する際に使用する方法を指定します。デフォルトではDML モードが使用されます。
string
"DML"
DML に設定すると、Cloud はInsert SQL ステートメントを使用してバルクデータをアップロードします。
CSVStream に設定すると、Cloud はCOPY FROM STDIN コマンドでのバルクアップロードを使用します。
集計やGROUP BY を使用しないクエリで返される最大行数を指定します。
int
-1
このプロパティは、集計やGROUP BY 句を含まないクエリに対してCloud が返す行数の上限を設定します。 この制限により、クエリがデフォルトで過度に大きな結果セットを返さないようにします。
クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。 MaxRows が"-1" に設定されている場合、LIMIT 句が明示的にクエリに含まれていない限り、行の制限は行われません。
このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し過剰なリソース消費を防ぐのに役立ちます。
provider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。
int
30
このプロパティは、Cloud が操作をキャンセルする前に操作の完了を待機する最大時間を秒単位で制御します。 操作の完了前にタイムアウト時間が経過すると、Cloud は操作をキャンセルして例外をスローします。
タイムアウトは、クエリや操作全体ではなくサーバーとの個々の通信に適用されます。 例えば、各ページング呼び出しがタイムアウト制限内に完了する場合、クエリは60秒を超えて実行を続けることができます。
このプロパティを0に設定するとタイムアウトが無効になり、操作が成功するか、サーバー側のタイムアウト、ネットワークの中断、またはサーバーのリソース制限などの他の条件で失敗するまで無期限に実行されます。 このプロパティは慎重に使用してください。長時間実行される操作がパフォーマンスを低下させたり、応答しなくなる可能性があるためです。
サーバーがdatetime / timestamp カラムを返す際に使用するタイムゾーンを設定します。
string
""
サーバーはタイムゾーン付きの時刻とタイムゾーン付きのタイムスタンプをUTC で保存します。TimeZone プロパティが設定されない場合は、プロバイダーはクライアントのローカルタイムゾーンを使用します。
このプロパティを設定すると、サーバーがクライアントのローカルタイムゾーンとは異なる特定のタイムゾーンに変換する必要がある場合に役立ちます。