QGISからのPostGIS認証プロセスを簡素化


9

QGISには、さまざまな(〜15)PostGISデータベースからのデータを含むプロジェクトがあり、次に示すように、接続ごとにログイン資格情報(認証ユーザー/パスワード)が保存されていません。

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

これで、別のユーザーがプロジェクトを開くとき、彼(または彼女)は使用する各データベースの資格情報を入力する必要があります。

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

私のユーザーが資格情報の入力を15回受け入れることは正当にできないと強く恐れています(ただし、数百人のユーザーがいる可能性のあるエンタープライズ環境では、受け入れが成功の鍵です)。

したがって、私には2つの質問が生じます。

  • グローバルプロジェクト変数にユーザー名応じて提案する方法があるuser_account_name
  • QGISに、最初のdb接続用に入力された資格情報を他の接続にも使用するように指示する方法はありますか?

以下に提案されているように「資格情報を入力してください」ダイアログを変更することは大きな意味があるかどうかを見積もることはできませんが、これは可能ですか?

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


他のすべての変数は同じままであるので、「レルム」のみが変更されますか?
LaughU 2017

はい、実際には 'dbname'のみが変更されています。すべて同じサーバー上にあります。
Jochen Schwarze

5
PostGISは空間拡張です。十数個のPostgreSQLデータベースがあります。クラッジをまとめることはできるかもしれませんが、実際には1つの大きなデータベースが必要です。3つ以上に接続することは、アプリケーション/データベースの設計が悪いだけです。
ビンス

3
とても多忙...私の質問がアプリケーション/データベースの設計についてではないことを明確にするのに私の英語が十分ではないので申し訳ありません。ちなみに、私は常にPostGISはPostgreSQLを意味し、QGISではPostGIS接続を確立すると考えていました(上記のスクリーンショット)。一部のPostgresの人々は、可能な限り異なるデータベースに異なるコンテンツを配布することは良い習慣であると述べていますが、3つを超えるデータベースへの接続はアプリケーション設計が不十分であることを知っているところから参加させてください。関連文献の参照を提供してください!そして、なぜ3つなのか。
Jochen Schwarze

1
文献を紹介することはできませんが、同じデータベース内で別々のスキーマを使用するのが良い解決策になるでしょう。
bugmenot123

回答:


7

QGISには認証システムが組み込まれています。簡単に言えばqgis-auth.db、マスターパスワードを知っている他の人に送信できる、すべての資格情報が1つのファイルに保存された保護されたデータベースがあります。

 .qgisフォルダー

新しいPostGIS接続を作成するときは、ログイン/パスワードを入力する代わりに、それを選択できますqgis-auth.db(各ログイン/パスワードのペアには、わかりやすい名前が付いています)。

認証システムを使用してQGISでPostGIS接続をセットアップする

例として、多くのレイヤーを含むQGISプロジェクトがあります。各レイヤーは、リモートPostGISデータベースへの接続です。各データベースには独自のユーザーがあります。このプロジェクトを開くと、マスターパスワードを1回印刷する必要があります。すべてのレイヤー(db接続)が機能し始めます。

このプロジェクトを同僚に送信して、qgis-auth.dbファイルを提供できます。事前に、共有したくない一部の認証情報をこのファイルから削除する場合があります。

私の同僚qgis-auth.dbが彼の.qgisフォルダーに入れた後(彼は以前に自分のファイルのバックアップを作成する場合があります)、プロジェクトを開き、マスターパスワードを入力すると、すべてが機能します。

セッションごとに1回マスターパスワードを入力します。

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