私はRedHatでPostgreSQL 9.0.3を使用しています。データベースには、public
とwh
の2つのスキーマが含まれています。 django
という新しい役割を作成しました。私はこのユーザーにwh
スキーマをデフォルトとして使用させたいと思います。PostgreSQLの検索パスの変更が広告として反映されない
マニュアルに続いて、私はなかった:私は、その後\dt
を行う場合は、publicスキーマからのテーブルのみが表示され
SHOW SEARCH_PATH;
search_path
-------------
wh, public
:
ALTER USER django SET SEARCH_PATH TO wh, public;
をこれが動作するように表示されます。このマニュアルでは、検索パスを変更するとすぐに影響が出るはずです。接頭辞なしでwh
テーブルにアクセスできるはずですが、そうではありません。ログインとログアウトは、変更をsearch_path
に保持しますが、動作の変更は表示されません。
私には何が欠けていますか?
こんにちはアーウィン、これは働いた!スーパーユーザーにこの役割を与えることでこれを達成できなかったことは、私にとって非常に奇妙です。ただし、スキーマの明示的な許可によって、動作が正しく行われます。貢献したすべての人に感謝します。 – talonsensei
「SELECT id FROM mytable」のようなスキーマ修飾なしのテーブルをクエリすると、PGは 'relation" mytableが "存在しません"と言うでしょうが、これは存在していることを誤解していますが、アクセス。したがって、 'SELECT id FROM myschema.mytable;のような適切なスキーマ名でテーブルをクエリすると、代わりに、'スキーマに対する許可が拒否されました.'というメッセージが表示されます。 'GRANT USAGE SCHEMA .. 'ステートメントが必要です。これは、問合せで完全修飾スキーマ名を使用することが良いアイデアである理由の1つです。 –
こんにちはアーウィン、ソリューションをありがとう、私を救った! :-)とtalonsenseiのおかげで、ここで質問を始めました:-) – shahjapan