0

私はpgAdminのログインロールの下に作成されたユーザーを持っています。ユーザーの名前は「myApp」です。

これを作成するためのpgsql構文は次のとおりです。

CREATE ROLE myApp LOGIN
  ENCRYPTED PASSWORD 'md58e0b379fc6e92422518682611bcf2d42'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

最近は、最終的にスーパーユーザーでデータベースに接続するために、yii フレームワークによって開発されたアプリケーションを持っていました。つまり..ユーザー「postgres

しかし、最近リリースを行った後、以下のようなエラーが発生し始めました

ここに画像の説明を入力

新しく作成されたテーブルのmyAppユーザーロールにアクセス許可を設定したが、シーケンスに対して同じことを行うのに失敗したため、解決するために以下のスクリプトを書きました..

GRANT ALL ON TABLE css_ataps_client_outgoing_call_dates_id_seq TO myAppAdmin;
GRANT SELECT, UPDATE ON TABLE css_ataps_client_outgoing_call_dates_id_seq TO myApp;

ここで、本番アプリケーションと同じログイン ( myAppであるがpostgresではない) を使用して、アプリケーションがデータベースに接続できるようにする必要があります。

残念ながら、 postgresユーザーを使用しないと機能しません。myAppユーザーに接続しようとしたときに発生したエラーは何もありません。ログにも記録されません。したがって、ログインの詳細が同じであり、機能していることを確認できます。問題は、ユーザーmyAppが単一のテーブルへの読み取り/書き込みアクセス権を持っていない可能性があります。そのため、データベース内のどのテーブルに権限がないか、またはその逆かを確認したいと思います。

これを調べる方法を教えてください。ありがとう。

4

1 に答える 1

1

これで十分です。試してみて、私に知らせてください。

GRANT ALL ON DATABASE <ur database name> TO myApp; <- not this

このクエリを試してください..!

GRANT SELECT,UPDATE,INSERT,DELETE ON ALL TABLES IN SCHEMA public TO myApp;
于 2013-08-16T04:52:07.027 に答える