PostGISデータベースをセットアップし、Windows上のQGISで開きますか?


13

QGISを使用しているユーザーがアクセスできるようにPostGISデータベースを設定するためのマニュアルに従うことを試みましたが、現時点では十分に理解できずに進行しますか?

私の状況; 私は、緑のオブジェクト(樹木など)のデジタル化のためのPostGISデータベースを作成し、クエリを実行する研修生です。たとえば、ストリートリストと画像ファイルを属性テーブルにリンクします。

「シェープファイルスケルトン」(現在空のオブジェクトなし、属性フレームのみ)があり、現在および将来のジオリファレンスオブジェクト(タイプごとに異なるシェープファイル)が貼り付け/作成されます。これらのスケルトンシェープファイルをインポートできると信じていますデータベース?

状況;

私たちは、ファイルごとにバックアップサーバーを備えた独自のLANとインターネット接続を備えた別の建物で働いています。したがって、ローカルファイルアクセスとインターネット接続を介して共有するファイルがあります。

データベースのセットアップは、PostGISおよびPostgreSQLの最新の.exe実行ファイル(postgresql-9.6.2-3-windows-x64およびpostgis-bundle-pg96x64-setup-2.3.2を使用して、リモートアクセス経由で管理者によって行われました。 -1)64ビットマシンの場合。管理者からログイン情報が記載されたテキストファイルが提供されました。ここでのトレーニングマニュアルは、Ubuntuを扱っているため、かなり混乱しています。

書き留めたログイン情報をどこで使用するかわからないので、行き詰まっていますか?pgAdminを使用する必要があると思いますか?


これは、WindowsにPostGISをインストールする方法です。単純なインストールget.enterprisedb.com/docs/…で、QGISは設定したユーザー名とパスワードで簡単に接続できます。
マッパーズ

1
データベースを操作するために、pgAdmin 3をインストールすることをお勧めします。現在pgAdmin4があります。同時にインストールすることもできます。どちらがお好みかを確認してください。
マーティンヒューギ

ちょっと待って、QGISのどこに行くのか、どのファイルをStackbuilderにインストールすればいいのか?nvmの編集:見つかったので、どのローカルホストとサービスエントリを作成する必要があるかを見つけなければなりません。
サンダースパーク

Postgisは必要な「サーバー」をローカルにインストールします。これはデータベースの動作です-QGISを使用してサーバー(localhost)経由で「ライブ」に接続します。
マッパーズ

回答:


23

管理者がデータベースを正常にインストールし、必要な詳細を提供したかのように聞こえます。また、インストール中にPostGISを構成している場合もありますが、そうでない場合は、これらの手順を実行するときに確認できます。

まず、管理者にpgAdminをインストールするよう依頼してください。これにより、グラフィカルインターフェイスを使用してPostgreSQLデータベースにアクセスできます。

https://www.pgadmin.org/download/windows.php

pgAdminを開く

PostgreSQLがインストールされている場合。

  • お使いのコンピューターではlocalhostとして表示されます。「PostgreSQL 9.6(localhost:5432)」をダブルクリックして接続できます。

ここに画像の説明を入力してください

  • ネットワークにインストールされている場合、ホストアドレスを管理者に知らせる必要があります(まだ持っていない場合)。次に、[ファイル]> [サーバーの追加]に移動してフィールドに入力する必要があります。

ここに画像の説明を入力してください

接続したら Edit > New Object > New Database

名前を付けてください。サーバーリストに表示されます。

ダブルクリックして接続します。がExtensionsリストされているかどうかを確認しますpostgis

そうでない場合;

SQLアイコンをクリックして、SQLウィンドウを開きます。

ここに画像の説明を入力してください

そして入力

CREATE EXTENSION PostGIS

「クエリの実行」を押す-このアイコン ここに画像の説明を入力してください

リスト内のデータベースを右クリックして切断し、再接続します。拡張機能がpostgisリストされているはずです。

この時点で、新しいグループロールとログインロールを設定できます。これは、セキュリティニーズとネットワーク上のユーザーを提供する必要があるかのように聞こえます。

または、単にテストするだけの場合は、デフォルトのロールで続行できますpostgres

さまざまなグループを設定して、管理者とユーザーなどのさまざまな権限を設定できます。その後、ユーザーログインを設定して、ユーザーに付与するアクセス許可レベルに合ったグループに割り当てることができます。

SQLウィンドウを開き、これらのクエリを実行します。

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

管理者ログインを設定します(postgres /スーパーユーザーとしてログインします)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

ユーザーログインを設定します(postgres /スーパーユーザーとしてログインします)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

QGISを開きます。新しいプロジェクトを開始します。

左側のツールバーの「Add PostGIS layer」アイコンをクリックします。

ここに画像の説明を入力してください

[新規]接続をクリックし、上記のように接続の詳細を入力します(データベースがローカルの場合、ホストは単にlocalhost)。

この時点で接続をテストできます。ユーザー名とパスワードのフィールドで[保存]ボックスをオンにすると、資格情報がプロファイルに保存されるため、毎回入力する必要はありません。セキュリティのニーズに応じてあなた次第です。

[OK]を押して[PostGISテーブルウィンドウの追加]を閉じます

次に移動しますDatabase > DB Manager > DB Manager (最近のQGISバージョンでは、DBマネージャーが標準としてインストールされています。以前のバージョンでは、DBマネージャープラグインをインストールする必要があります)

PostGISを選択します。デフォルトのパブリックスキーマが表示されます。パブリックスキーマを使用するのではなく、新しいスキーマを作成する必要があるように聞こえます。

スキーマ>スキーマの作成-名前を付けます(no_spaces_or_use_underscores

作成したら、pgAdminに戻って切断、再接続して確認できます。新しいスキーマが存在するはずです。

QGIS DBマネージャーに戻り、シェープファイルをデータベースのテーブルにアップロードします。

下矢印「レイヤー/ファイルのインポート」をクリックして、インポートするシェープファイルを参照します。`...` `アイコンをクリックしてブラウズを開きます。

テーブルに名前を付けます(again_no_spaces_or_use_underscores

選択する Primary key

選択する Geometry Column

SRIDCRSコードを選択して入力します

今のところ、他のすべてを残しますOK

大きなデータセットの場合、特にネットワーク/インターネット接続を介して時間がかかる可能性があります

再びpgAdminに戻り、今回は更新を押すと、新しいテーブルがに表示されTablesます。

グループの役割とユーザーを設定した場合、たとえば、スキーマへのアクセスを許可する必要があります。

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

QGISに戻り、「PostGISレイヤーを追加」。今回は「接続」を選択します。スキーマを開き、テーブルを強調表示して[追加]をクリックすると、プロジェクトスペースで開きます。


彼らはPQadmin 4をインストールしたようです、私はプログラムがそれを要求するときにパスワードを提供していますが、「ホスト名「postgres // * communityname123」をアドレスに変換できませんでした:Unknown server error」を取得します。したがって、ここで何をする必要がありますか。私はPQadmin4を使用しており、PostGre SQL 9.6のサーバーは1つしかありません。したがって、ここでインストールしたPostGre QSLサーバーであると想定しますが、アドレスの構成に何か問題がある可能性があります。ここでそれらを通知する必要がありますか、何か間違っていますか?* =センサー。
ThunderSpark

1
ホスト名として「localhost」を試してみてください。これはインまたはアウトをルールするためです。そうでない場合は、管理者にpostgresがネットワーク上のどこにあるかを尋ねてください。管理者はこれを提供できるはずです。おそらく単なる構文であるか、アドレスに何かが欠けています。
マーティンヒューギ

うまく行ってくれてありがとう、また、ユーザー名をスーパーユーザーやPostgresなどに変更することでミスを犯したことがわかりました。残りの指示に従い、それが機能するかどうかを確認します。ありがとう、マーティン。
ThunderSpark

マーティン、うまくいきました。ここで作業しているグループのデータベースを作成する方法の残りを追加してください。
サンダースパーク

すぐにいくつかのスクリプトを追加し、昼休みを待たなければならなかったので、少し急ぎました。彼らは動作するはずです。
マーティンヒューギ

2

あなたのプロジェクトはpostgres / postgisの移植可能なインストールで十分に動作するようです。私は少し前にこれを生徒に行ったので、生徒はUSBスティックのpostgreslフォルダーをコピーして、すべてのWindows PCで使用できます。

  1. postgresql をzipファイルとしてダウンロードする
  2. 解凍する
  3. ダウンロードしたPostGIS(postgis-bundle-pg96-2.3.1x32.zipまたはx64)、お使いのシステムに応じて
  4. 解凍して、postgresqlフォルダーにコピーします
  5. この説明を使用して、Postgresをポータブルバージョンとして「インストール」します。http//www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. オプションでpg_hba.confを変更し、「host all all 127.0.0.1/32 trust」を追加/オーバーライドします。これにより、パスワードを確認せずにPCからデータベースにアクセスできます。
  7. pgadmin3を使用してデータベースに接続します
  8. 新しいデータベースを作成し、「CREATE EXTENSION postgis;」を実行します

これで、postgesql / postgisを使用して、PCのデータベースにアクセスできるようになります。これは、教育目的では機能しますが、実稼働/ネットワーク環境では機能しない、迅速で汚れたソリューションであることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.