私は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が単一のテーブルへの読み取り/書き込みアクセス権を持っていない可能性があります。そのため、データベース内のどのテーブルに権限がないか、またはその逆かを確認したいと思います。
これを調べる方法を教えてください。ありがとう。