チュートリアル: PostgreSQL のジオデータベースの概要

Standard または Advancedのライセンスで利用可能。

複雑度: 初心者 データ要件: 独自データの使用

このチュートリアルでは、Microsoft Windows サーバー上にある PostgreSQL でエンタープライズ ジオデータベースの使用を開始する例を示します。このチュートリアルでは、ArcGIS Server および ArcGIS Desktop または ArcGIS Pro がすでにインストールされており、データベース管理者ログインとジオデータベース管理者ログインの両方の接続情報が存在することを前提としています。

PostgreSQL のインストールと構成

このチュートリアルでは、My Esri で提供されている PostgreSQL のインストールを実行するか、サポートされている PostgreSQL のバージョンを別のソースから取得することができます。PostgreSQL をインストールしたら、pg_hba.conf ファイルを変更して、リモート接続を受け入れるようにデータベース クラスターを設定します。

PostgreSQL をダウンロードしてインストールします。

  1. My Esri から PostgreSQL のインストールをダウンロードします。
  2. PostgreSQL をインストールする Windows サーバー上で、セットアップ用の実行可能ファイルを実行します。

    英語以外の言語の環境でロケールと照合順序を設定する以外は、インストール ウィザードが提供するデフォルト値を使用できます。

    インストール中に、postgres スーパーユーザーのパスワードを指定します。このパスワードは、データベース クラスターのデータベース管理者パスワードです。このチュートリアルの後で必要になるため、忘れないでください。

PostgreSQL を最初にインストールすると、ローカル サーバーからのみ接続できます。ネットワーク上の他のコンピューターからアクセスするには、pg_hba.conf ファイルを変更する必要があります。

  1. PostgreSQL データ ディレクトリにある pg_hba.conf ファイルをテキスト エディターで開きます。

    デフォルトの場所は、C:\Program Files\PostgreSQL\<PostgreSQL version>\data です。

  2. データベースにアクセスするクライアントのアドレスを指定します。

    次の例では、orgnetwor.com から接続するすべてのコンピューターが、データベース クラスター上のすべてのデータベースにアクセスできます。

    #TYPE  DATABASE     USER    ADDRESS            METHOD
    host     all        all     .orgnetwork.com     md5
    

    データベース クラスターのセキュリティを高めるには、アクセスを特定の IP アドレスやアドレスの範囲に制限し、アクセス権を付与するデータベースまたはデータベースのリストを指定するか、接続できるユーザーを指定します。また、IP アドレスや IP アドレスの範囲へのアクセスを明示的に禁止することもできます。詳細と例については、PostgreSQL のドキュメントをご参照ください。

  3. PostgreSQL サービスを再起動します。

    再起動するには、[Windows サービス] リストから postgresql-x64 サービスを右クリックして、[再起動] をクリックします。

ST_Geometry ライブラリの PostgreSQL lib ディレクトリへの配置

PostgreSQL 内にジオデータベースを作成するには、ST_Geometry ライブラリが存在する必要があります。ジオデータベースを作成する前に、適切なライブラリを PostgreSQL がインストールされている lib ディレクトリに配置する必要があります。ST_Geometry ライブラリは、ArcMap または ArcGIS Server クライアントのインストール場所の DatabaseSupport フォルダーにありますが、My Esri からダウンロードすることもできます。

このチュートリアルでは、PostgreSQLWindows サーバー上にインストールされるため、Windows64 フォルダーにある ST_Geometry ライブラリを使用します。

  1. Windows エクスプローラーで、ArcGIS クライアントのインストール ディレクトリ内にある Windows の ST_Geometry ライブラリの場所に移動するか、My Esri からファイルをダウンロードします。
  2. この場所から st_geometry.dll をコピーします。
  3. データベース サーバー上の PostgreSQLlib ディレクトリに移動し、ライブラリを貼り付けます。

    Windows では、デフォルトの場所は C:\Program Files\PostgreSQL\<PostgreSQL version>\lib です。

ジオデータベースの作成

[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールを使用して、PostgreSQL にデータベース、sde ユーザー、sde スキーマ、ジオデータベースを作成することができます。

  1. ArcGIS Desktop クライアントまたは ArcGIS Pro を起動し、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを開きます。
  2. PostgreSQL データベース クラスターに postgres スーパーユーザーとして接続するために必要な情報を入力して、データベースと sde ユーザーを作成します。また、ArcGIS Server サイトを認証した際に生成されたキーコード ファイルも指定する必要があります。
  3. [OK] (ArcMap) または [実行] (ArcGIS Pro) をクリックします。

PostgreSQL にデータベース、sde ユーザー、sde スキーマ、ジオデータベースが作成されます。

データを所有するユーザーの作成

ジオデータベースに格納されるデータは、sde ユーザー以外のユーザーが所有する必要があります。[データベース ユーザーの作成 (Create Database User)] ジオプロセシング ツールを使用して、PostgreSQL データベース クラスター内にユーザー、新しいデータベース内にスキーマを作成します。

ただし、ユーザーを作成するには、まずデータベース管理者としてジオデータベースに接続する必要があります。この場合には、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールで sde ユーザーにはスーパーユーザー ステータスが付与されているため、postgres スーパーユーザーまたは sde ユーザーとして接続できます。

データベース接続を作成し、postgres または sde ユーザーとしてログインします。

  1. データベースへの接続 ArcMap では、ArcMap の [カタログ] ツリーで [データベース接続] ノードを展開して、[データベース接続の追加] をダブルクリックします。ArcGIS Pro では、[カタログ] ウィンドウの [データベース] フォルダーを右クリックして、[新しいデータベース接続] をクリックします。

    [データベース接続] ダイアログ ボックスが開きます。

  2. 新しいデータベースに PostgreSQL スーパーユーザーとして接続するために必要な情報を入力します。

    この接続ファイルはジオプロセシング ツールで使用するため、[ユーザー名とパスワードを保存する] をオンにする必要があります。ただし、ツールの実行後は、接続ファイル内でこのオプションをオフにして、別のユーザーとして接続するか、この接続ファイルを削除し、他のユーザーがこのファイルにアクセスして、ジオデータベースにデータベース管理者としてログインできないようにする必要があります。

  3. [OK] をクリックして、接続を作成します。

新しい接続ファイルは、[データベース接続] の下に表示されます。

これで、[データベース ユーザーの作成 (Create Database User)] ツールを実行できます。

  1. [データベース ユーザーの作成 (Create Database User)] を開きます。
  2. 新しい接続ファイルを [データベース ユーザーの作成 (Create Database User)] ツールの [入力データベース ワークスペース] テキスト ボックスにドラッグします。
  3. [データベース ユーザー] テキスト ボックスに新しいユーザーの名前、[データベース ユーザー パスワード] テキスト ボックスに新しいユーザーのパスワードを入力します。
  4. [OK] (ArcMap) または [実行] (ArcGIS Pro) をクリックします。

PostgreSQL に新しいユーザー名とスキーマが作成され、パブリック ロールにスキーマの USAGE 権限が自動的に付与されます。

新しく作成したユーザーとして接続

これで新しいジオデータベースにデータを追加できるユーザーができたので、そのユーザーでデータベースに接続します。最も簡単な方法は、前に作成した接続ファイルを変更することです。

既存のデータベース接続を開き、ユーザー名とパスワードを変更します。

  1. データベース接続を右クリックし、[接続プロパティ] をクリックします。
  2. [ユーザー名][パスワード] の値を新しいユーザーのものに変更します。
  3. [OK] をクリックして、新しいユーザーとして接続します。

これで、この接続を使用してデータをジオデータベースに追加できるようになりました。