チュートリアル: PostgreSQL のジオデータベースの概要
このチュートリアルでは、Windows サーバ上にある PostgreSQL 9.0.2-1 でエンタープライズ ジオデータベースの使用を開始する例を示します。このチュートリアルは、ArcGIS for Desktop と ArcGIS for Server がすでにインストールされていることを前提にしています。
PostgreSQL のインストールと設定
このチュートリアルでは、Esri Customer Care ポータルが提供する PostgreSQL のインストールを実行します。PostgreSQL をインストールしたら、pg_hba.conf ファイルを変更して、リモート接続を受け入れるようにデータベース クラスタを設定します。
PostgreSQL をダウンロードしてインストールします。
- Esri Customer Care ポータルから PostgreSQL のインストール(この場合は、postgresql 9.0.2-1 windows x64)をダウンロードします。
- PostgreSQL をインストールする Windows サーバ上で、セットアップ用の実行可能ファイルを実行します。
英語以外の言語の環境でロケールと照合順序を設定する以外は、インストール ウィザードが提供するデフォルト値を使用できます。
インストール中に、postgres スーパーユーザのパスワードを指定します。このパスワードは、データベース クラスタのデータベース管理者パスワードです。このチュートリアルの後で必要になるため、忘れないでください。
PostgreSQL を最初にインストールすると、ローカル サーバからのみ接続できます。ネットワーク上の他のコンピュータからアクセスするには、pg_hba.conf ファイルを変更する必要があります。
- PostgreSQL データ ディレクトリにある pg_hba.conf ファイルをテキスト エディタで開きます。
デフォルトの場所は、C:\Program Files\PostgreSQL\9.0\data です。
- データベース クラスタへのアクセスを許可するクライアント 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 のドキュメントをご参照ください。
- PostgreSQL サービスを再起動します。
再起動するには、[Windows サービス] リストから postgresql-x64 サービスを右クリックして、[再起動] をクリックします。
ST_Geometry ライブラリの PostgreSQL lib ディレクトリへの配置
PostgreSQL 内にジオデータベースを作成するには、ST_Geometry ライブラリが存在する必要があります。ジオデータベースを作成する前に、適切なライブラリを PostgreSQL がインストールされている lib ディレクトリに配置する必要があります。ST_Geometry ライブラリは、ArcGIS クライアント インストールの DatabaseSupport フォルダにあります。
このチュートリアルでは、PostgreSQL は Windows サーバ上にインストールされるため、Windows64 フォルダにある ST_Geometry ライブラリを使用します。
- 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 になります。
- この場所から st_geometry.dll をコピーします。
- データベース サーバ上の PostgreSQL の lib ディレクトリに移動し、ライブラリを貼り付けます。
Windows の場合、デフォルトの場所は C:\Program Files\PostgreSQL\9.0\lib です。
PostgreSQL クライアント ファイルの ArcGIS クライアント コンピュータへの配置
ArcGIS から接続してジオデータベースを作成するには、クライアント コンピュータ上に PostgreSQL クライアント ライブラリが存在する必要があります。
- Esri Customer Care ポータルから PostgreSQL クライアント ファイルをダウンロードします。
ArcGIS for Desktop から接続するには、32 ビット ファイルが必要です。ArcGIS for Server から接続するには、64 ビット ファイルが必要です。同じコンピュータ上に両方の ArcGIS クライアントがインストールされている場合、両方のライブラリが必要です。
- 該当するライブラリを 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 クライアント コンピュータ上に配置する必要があります。
- ArcGIS for Server がすでに実行中の場合は、bin ディレクトリにファイルを配置したことを認識させるため、再起動します。
ジオデータベースの作成
[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを使用して、PostgreSQL にデータベース、sde ユーザ、sde スキーマ、ジオデータベースを作成することができます。
- ArcMap を開始して、[検索] ウィンドウを開きます。
- [ツール] フィルタをクリックします。
- 検索ボックスに「エンタープライズ ジオデータベースの作成」と入力して、検索ボタンをクリックします。
- [エンタープライズ ジオデータベースの作成(データ管理)] リンクをクリックしてツールを開きます。
- PostgreSQL データベース クラスタに postgres スーパーユーザとして接続するために必要な情報を入力して、データベースと sde ユーザを作成します。また、ArcGIS for Server インスタンスを認証したときに生成されたキーコード ファイルも指定する必要があります。
この例では、PostgreSQL は mypgserver サーバ上で動作し、作成されるデータベースは fstutorial で、認証キーコード ファイルは ArcGIS for Server コンピュータのデフォルトの場所にあります。作成する postgres スーパーユーザのパスワードと、sde ユーザのパスワードも入力されています。[表領域名] は空白のままなので、データベースは pg_default 表領域に作成されます。
- [OK] をクリックしてツールを実行します。
PostgreSQL にデータベース、sde ユーザ、sde スキーマ、ジオデータベースが作成されます。
データを所有するユーザの作成
ジオデータベースに格納されるデータは、sde ユーザ以外のユーザが所有する必要があります。[データベース ユーザの作成(Create Database User)] ジオプロセシング ツールを使用して、PostgreSQL データベース クラスタ内にユーザ、新しいデータベース内にスキーマを作成します。
ただし、ユーザを作成するには、まずジオデータベースにデータベース管理者(この場合は postgres スーパーユーザ)として接続する必要があります。
データベース接続を作成し、postgres ユーザとしてログインします。
- ArcMap のカタログ ツリーの [Database Connections] ノードを展開して、[データベース接続の追加] をダブルクリックします。
[データベース接続] ダイアログ ボックスが開きます。
- 新しいデータベースに postgres スーパーユーザとして接続するために必要な情報を入力します。
この例では、新しい fstutorial ジオデータベースに対する postgres ユーザとしての接続が作成されます。
この接続ファイルはジオプロセシング ツールで使用するため、[ユーザ名とパスワードを保存する] をオンにする必要があります。ただし、ツールの実行後は、接続ファイル内でこのオプションをオフにして、別のユーザとして接続するか、または、この接続ファイルを削除して、他のユーザがこのファイルにアクセスして、ジオデータベースにデータベース管理者としてログインできないようにする必要があります。
- [OK] をクリックして、接続を作成します。
カタログ ツリーの [Database Connections] ノードの下に、新しい接続ファイルが表示されます。
これで、[データベース ユーザの作成(Create Database User)] ツールを実行できます。
- ArcMap の [検索] ウィンドウで [ツール] フィルタをクリックします。
- 検索ボックスに「データベース ユーザの作成」と入力して、[検索] ボタンをクリックします。
- [データベース ユーザの作成(データ管理)] リンクをクリックしてツールを開きます。
- 新しい接続ファイルをカタログ ツリーから [データベース ユーザの作成(Create Database User)] ツールの [入力データベース ワークスペース] テキスト ボックスにドラッグします。
- [データベース ユーザ] テキスト ボックスに新しいユーザの名前、[データベース ユーザ パスワード] テキスト ボックスに新しいユーザのパスワードを入力します。
この例では、前の手順で作成された接続ファイルがツールに追加され、ユーザ名(fstuser)とパスワードが指定されています。データベース ロールはまだ作成されていないため、ロール名は指定されていません。
- [OK] をクリックしてツールを実行します。
PostgreSQL に新しいユーザ名とスキーマが作成され、パブリック ロールにスキーマの USAGE 権限が自動的に付与されます。
新しく作成したユーザとして接続
これで新しいジオデータベースにデータを追加できるユーザができたので、そのユーザでデータベースに接続します。最も簡単な方法は、前に作成した接続ファイルを変更することです。
既存のデータベース接続を開き、ユーザ名とパスワードを変更します。
- データベース接続を右クリックし、[接続プロパティ] をクリックします。
- [ユーザ名] と [パスワード] の値を新しいユーザのものに変更します。
- [OK] をクリックして、新しいユーザとして接続します。
これで、この接続を使用してデータをジオデータベースに追加できるようになりました。