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

複雑性: 初級 データ要件: 独自データの使用

このチュートリアルでは、Windows サーバ上にある PostgreSQL 9.0.2-1 でエンタープライズ ジオデータベースの使用を開始する例を示します。このチュートリアルは、ArcGIS for DesktopArcGIS for Server がすでにインストールされていることを前提にしています。

PostgreSQL のインストールと設定

このチュートリアルでは、Esri Customer Care ポータルが提供する PostgreSQL のインストールを実行します。PostgreSQL をインストールしたら、pg_hba.conf ファイルを変更して、リモート接続を受け入れるようにデータベース クラスタを設定します。

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

手順:
  1. Esri Customer Care ポータルから PostgreSQL のインストール(この場合は、postgresql 9.0.2-1 windows x64)をダウンロードします。
  2. PostgreSQL をインストールする Windows サーバ上で、セットアップ用の実行可能ファイルを実行します。

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

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

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

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

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

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

    次の例では、ネットワーク上のすべてのアドレスとすべての接続ユーザが、データベース クラスタ上のすべてのデータベースにアクセスできます。

    #  TYPE  DATABASE     USER     CIDR-ADDRESS    METHOD
    
    # IPV4 local connections:
    host     all          all      0.0.0.0/0       md5
    
    # IPV6 local connections:
    host     all          all      ::/0            md5

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

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

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

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

PostgreSQL 内にジオデータベースを作成するには、ST_Geometry ライブラリが存在する必要があります。ジオデータベースを作成する前に、適切なライブラリを PostgreSQL がインストールされている lib ディレクトリに配置する必要があります。ST_Geometry ライブラリは、ArcGIS クライアント インストールの DatabaseSupport フォルダにあります。

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

手順:
  1. Windows エクスプローラで、ArcGIS クライアントのインストール ディレクトリ内にある Windows の ST_Geometry ライブラリの場所に移動します。

    64 ビット Windows オペレーティング システム場合、ArcGIS for Desktop のデフォルトの場所は、C:\Program Files (x86)\ArcGIS\Desktop<リリース番号>\DatabaseSupport\PostgreSQL\Windows64 です。32 ビット Windows オペレーティング システムの場合は C:\Program Files\ArcGIS\Desktop<リリース番号>\DatabaseSupport\PostgreSQL\Windows64 になります。

  2. この場所から st_geometry.dll をコピーします。
  3. データベース サーバ上の PostgreSQL の lib ディレクトリに移動し、ライブラリを貼り付けます。

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

PostgreSQL クライアント ファイルの ArcGIS クライアント コンピュータへの配置

ArcGIS から接続してジオデータベースを作成するには、クライアント コンピュータ上に PostgreSQL クライアント ライブラリが存在する必要があります。

手順:
  1. Esri Customer Care ポータルから PostgreSQL クライアント ファイルをダウンロードします。

    ArcGIS for Desktop から接続するには、32 ビット ファイルが必要です。ArcGIS for Server から接続するには、64 ビット ファイルが必要です。同じコンピュータ上に両方の ArcGIS クライアントがインストールされている場合、両方のライブラリが必要です。

  2. 該当するライブラリを ArcGIS クライアントの bin ディレクトリに貼り付けます。
    • ArcGIS for Desktop の場合は、32 ビット ファイルを C:\Program Files (x86)\ArcGIS\Desktop<リリース番号>\bin ディレクトリ(64 ビット オペレーティング システム)または C:\Program Files\ArcGIS\Desktop<リリース番号>\bin ディレクトリ(32 ビット オペレーティング システム)に貼り付けます。
    • ArcGIS for Server の場合は、64 ビット ファイルを C:\Program Files\ArcGIS\Server\bin ディレクトリに貼り付けます。
    注意注意:

    ライブラリは、データベースへの接続元となるすべての ArcGIS クライアント コンピュータ上に配置する必要があります。

  3. ArcGIS for Server がすでに実行中の場合は、bin ディレクトリにファイルを配置したことを認識させるため、再起動します。

ジオデータベースの作成

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

手順:
  1. ArcMap を開始して、[検索] ウィンドウを開きます。
  2. [ツール] フィルタをクリックします。
  3. 検索ボックスに「エンタープライズ ジオデータベースの作成」と入力して、検索ボタンをクリックします。
  4. [エンタープライズ ジオデータベースの作成(データ管理)] リンクをクリックしてツールを開きます。
  5. PostgreSQL データベース クラスタに postgres スーパーユーザとして接続するために必要な情報を入力して、データベースと sde ユーザを作成します。また、ArcGIS for Server インスタンスを認証したときに生成されたキーコード ファイルも指定する必要があります。

    この例では、PostgreSQL は mypgserver サーバ上で動作し、作成されるデータベースは fstutorial で、認証キーコード ファイルは ArcGIS for Server コンピュータのデフォルトの場所にあります。作成する postgres スーパーユーザのパスワードと、sde ユーザのパスワードも入力されています。[表領域名] は空白のままなので、データベースは pg_default 表領域に作成されます。

    PostgreSQL にジオデータベースを作成する値の例

  6. [OK] をクリックしてツールを実行します。

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

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

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

ただし、ユーザを作成するには、まずジオデータベースにデータベース管理者(この場合は postgres スーパーユーザ)として接続する必要があります。

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

手順:
  1. ArcMap のカタログ ツリーの [Database Connections] ノードを展開して、[データベース接続の追加] をダブルクリックします。

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

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

    この例では、新しい fstutorial ジオデータベースに対する postgres ユーザとしての接続が作成されます。

    postgres ユーザとして接続する例

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

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

カタログ ツリーの [Database Connections] ノードの下に、新しい接続ファイルが表示されます。

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

手順:
  1. ArcMap の [検索] ウィンドウで [ツール] フィルタをクリックします。
  2. 検索ボックスに「データベース ユーザの作成」と入力して、[検索] ボタンをクリックします。
  3. [データベース ユーザの作成(データ管理)] リンクをクリックしてツールを開きます。
  4. 新しい接続ファイルをカタログ ツリーから [データベース ユーザの作成(Create Database User)] ツールの [入力データベース ワークスペース] テキスト ボックスにドラッグします。
  5. [データベース ユーザ] テキスト ボックスに新しいユーザの名前、[データベース ユーザ パスワード] テキスト ボックスに新しいユーザのパスワードを入力します。

    この例では、前の手順で作成された接続ファイルがツールに追加され、ユーザ名(fstuser)とパスワードが指定されています。データベース ロールはまだ作成されていないため、ロール名は指定されていません。

    ユーザを作成する値の例

  6. [OK] をクリックしてツールを実行します。

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

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

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

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

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

    管理者ではないユーザとして接続する例

  3. [OK] をクリックして、新しいユーザとして接続します。

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

関連トピック

5/10/2014