ArcGIS から、エンタープライズ ジオデータベースを含むデータベースなどの PostgreSQL データベースに接続するために必要な手順を以下にまとめます。
- データベース名が ArcGIS の要件を満たしていることを確認します。
- PostgreSQL が、アクセスが必要な ArcGIS クライアント コンピューターからの接続を受け入れることを確認します。
- データベース接続を作成します。
- ArcGIS Server データベース内のデータを参照する PostgreSQL Web サービスを公開するには、データベース接続ファイルを ArcGIS Server サイトに登録します。
PostgreSQL クライアント ファイルは ArcGIS Pro および ArcGIS Server とともにインストールされます。クライアントにアクセスするために、PostgreSQL クライアントをインストールしたり環境変数を設定したりする必要はありません。
接続を許可するためのデータベースの構成
デフォルトでは、PostgreSQL データベース クラスターには、同じコンピューター上で実行されているクライアントのみが接続できます。 リモート クライアントがデータベース クラスターに接続し、アクセス可能なデータベースを制御できるようにするには、PostgreSQL の pg_hba.conf 構成ファイルを変更します。 pg_hba.conf ファイルに配置するエントリは、サイトでのセキュリティ ポリシーおよび構成に応じて変わります。
手順については、PostgreSQL ドキュメントをご参照ください。
データベースへの接続
以下に示すように、ArcGIS Pro の [データベース接続] ダイアログ ボックスを使用して、データベースに接続できます。
または、ArcGIS Pro で [データベース接続の作成 (Create Database Connection)] ツールを実行するか、Python を使用して ArcGIS Server コンピューターから [データベース接続の作成 (Create Database Connection)] コマンドを実行して、データベースに接続するデータベース接続ファイル (.sde) を作成することができます。
データベース接続ファイルを ArcGIS Server で使用するには、ユーザー情報を接続ファイルに保存する必要があります。
オペレーティング システム認証を使用する場合は、PostgreSQL が ArcGIS Server アカウントを認証できることを確認してください。
ヒント:
接続に使用されるアカウントに、データベースとアカウントがアクセスする必要があるデータに対する適切な権限が付与されていることを確認します。 接続でオペレーティング システム認証を使用し、この接続を使用して Web サービスを公開する場合、Web サービスに含まれるデータに対する必要な権限が ArcGIS Server アカウントに付与されていることを確認します。 詳細については、「PostgreSQL でのジオデータベースの権限」および「ArcGIS で PostgreSQL データベースを使用するための権限」をご参照ください。
PostgreSQL の [データベース接続] ダイアログ ボックスから ArcGIS Pro データベースに接続するには、次の手順に従います。
- ArcGIS Pro で [カタログ] ウィンドウを開きます。
- [データベース] を右クリックするか、[フォルダー] の下のフォルダーを右クリックして [新しいデータベース コネクション] をクリックします。
- [データベース プラットフォーム] ドロップダウン リストから [PostgreSQL] を選択します。
- [インスタンス] テキスト ボックスに、データベース クラスター名または PostgreSQL がインストールされているサーバーの IP アドレスを入力します。
[インスタンス] テキスト ボックスに含める情報の例を次に示します。
- PostgreSQL データベース クラスターが ficus という名前のサーバーに存在する場合、[インスタンス] テキスト ボックスに「ficus」と入力します。
- PostgreSQL データベース クラスターがデフォルト (5432) 以外のポートで接続を待ち受ける場合は、インスタンスにポート番号を含める必要があります。 たとえば、PostgreSQL が mamabear というサーバーにインストールされており、ポート 49200 で接続を待ち受ける場合は、[インスタンス] テキスト ボックスに「mamabear,49200」と入力します。
- IPV6 アドレスを使用して、PostgreSQL がインストールされているサーバーにアクセスするには、アドレスを括弧で囲みます。 たとえば、サーバーの IPV6 アドレスが 1111:aa1:0:1:f111:a222:33f3:b4bb の場合、インスタンス テキスト ボックスに「[1111:aa1:0:1:f111:a222:33f3:b4bb]」と入力します。
- Amazon Aurora (PostgreSQL-compatible edition) インスタンスまたは Amazon RDS for PostgreSQL インスタンスの場合、<database_instance_identifier>.<region_id>.rds.amazonaws.com の形式でインスタンス名を指定します。 たとえば、識別子が mypgrdsdb のインスタンスを us-east-1 Amazon Web Services リージョンに作成した場合、[インスタンス] テキスト ボックスに「mypgrdsdb.us-east-1.rds.amazonaws.com」と入力します。
- Google Cloud SQL for PostgreSQL インスタンスの場合、[インスタンス] テキスト ボックスにインスタンスのパブリック IP アドレスを入力します。
- Microsoft Azure Cosmos DB for PostgreSQL インスタンスの場合、接続文字列の形式は c.<cluster_name>.postgres.database.azure.com です。 たとえば、作成時にクラスターに allmydata という名前を付けた場合、[インスタンス] テキスト ボックスに「c.allmydata.postgres.database.azure.com」と入力します。
- Microsoft Azure Database for PostgreSQL インスタンスの場合、インスタンス名の形式は <server_name>.postgres.database.azure.com です。 たとえば、作成時にサーバーに spatialdata という名前を付けた場合、[インスタンス] テキスト ボックスに「spatialdata.postgres.database.azure.com」と入力します。
注意:
PostgreSQL データベース クラスターがデフォルト (5432) 以外のポートで接続を待ち受ける場合は、インスタンスにポート番号を含めることができます。 たとえば、PostgreSQL がサーバー mamabear にインストールされており、ポート 49200 で接続を待ち受ける場合は、[インスタンス] テキスト ボックスに「mamabear,49200」と入力します。 または、ポート番号をその他のプロパティとして指定します (下記のステップ 8 を参照)。
- データベースに接続する際に使用する認証タイプとして、[データベース認証] または [オペレーティング システム認証] のいずれかを選択します。
- [オペレーティング システム認証] を選択した場合、ユーザー名とパスワードを入力する必要はありません。接続は、オペレーティング システムへのサイン インに使用された Security Support Provider Interface (SSPI)、Lightweight Directory Access Protocol (LDAP)、または Generic Security Service Application Program Interface (GSSAPI) のログイン名とパスワードを使用して確立されます。 オペレーティング システムに使用するログイン情報がデータベースへのログインにマッピングされていない場合、接続は確立されません。
[データベース認証] を選択した場合、有効なユーザー名とパスワードをそれぞれ [ユーザー名] と [パスワード] テキスト ボックスに指定する必要があります。 ユーザー名には、最大で 30 文字まで入力できます。
ログイン情報をコネクションの一部として保存しない場合は、[ユーザー名/パスワードの保存] をオフにします。これは、データベースのセキュリティを維持するのに役立ちます。 ただし、オフにした場合、接続時にユーザー名とパスワードを入力するよう求められます。
注意:
データベース認証を使用してデータベースへのアクセス権を ArcGIS Web サービスに付与する接続ファイルの場合やこの接続ファイルを経由してアクセスするデータを ArcGIS Pro で検索する場合は、[ユーザー名とパスワードを保存する] チェックボックスをオンにする必要があります。
- PostgreSQL データベース クラスター上の接続先データベースの名前を入力または選択します。
- [接続ファイル名] フィールドに接続ファイルの名前を入力します。
接続情報を指定すると、デフォルト名が作成されます。 デフォルトを使用するか、より説明的なファイル名を入力できます。
これは、[カタログ] ウィンドウとビューに表示される名前であり、ディスクに保存される .sde ファイルの名前です。
- PostgreSQL データベース クラスターがデフォルト以外のポートを介して通信する場合は、[その他のプロパティ] セクションを展開し、[プロパティ] ドロップダウン メニューから [ポート] を選択して [値] フィールドにそのポートを入力します。
- [整合チェック] をクリックし、接続情報が有効で、データベースにアクセスできることを確認します。
データベースにジオデータベースが含まれ、接続が有効である場合は、[ジオデータベース プロパティ] タブがアクティブになります。 必要に応じて、ジオデータベースの接続プロパティを変更して、デフォルト バージョン以外の従来のバージョンに接続したり、接続をブランチ バージョン接続として構成したり、履歴モーメントに接続したりできます。
- [OK] をクリックして、接続ファイルを作成します。
データベース接続が [カタログ] ウィンドウの [データベース] に表示され、接続ファイル (.sde) が ArcGIS Pro のプロジェクト ディレクトリに作成されます。
ArcGIS Enterprise に接続を登録します。
ArcGIS Server サイトでデータにアクセスできるようにするには、作成したデータベース接続ファイルを使用して、ArcGIS Pro に登録済みデータ ストアを追加するか、ポータルにデータ ストア アイテムを追加します。
オペレーティング システム認証を使用して接続を登録するには、ArcGIS Enterprise 11.1 以降が必要です。 ArcGIS Server の実行に使用する ArcGIS Server アカウントは、PostgreSQL のログイン ロールにマッピングされた SSPI ログインまたは LDAP ログインである必要があります。 そのログイン ロールには、ジオデータベースまたは PostgreSQL データベースから公開するテーブルに対する権限を付与する必要があります。