私はバックエンドデータベースとしてPostgreSQLとスクリプトを処理するperlを使用してWebベースのアプリケーションを開発しています
ここでのアドバイスと同様に、ログイン情報を別のファイルに保持し、グローバルデータベース接続パラメーターを保存する場所を指定します。スクリプトが何を達成する必要があるかに応じて、異なるログイン資格情報を指す可能性があります。現在、これは明らかに変更が必要なデフォルトのPostgreSQLアカウントです。
PostgreSQLでユーザーアカウントを設定する方法について頭を悩ませる必要があります
ユーザーがデータベースにクエリを実行できるようにする2つが必要だと思います(例:web_user)。もう1つは変更を送信する必要があります(例:web_admin)。
web_adminアカウントはWebページにログインする必要があります
pgAdminまたはコマンドラインでログインロールを作成し、必要な権限を与えるにはどうすればよいですか?
編集してください明確にしてください
私は2つのアカウントを作成することに苦労しましたが、これが正しい方法であるかどうかは不明です
CREATE USER web_user PASSWORD 'password1';
GRANT SELECT to web_user on Table1; // Read Only
CREATE USER web_admin PASSWORD 'password2';
GRANT SELECT,INSERT,UPDATE,DELETE to web_admin on Table1; // Read Insert and update / delete rows within a existing table but not able to create, alter or delete a Table or column
2つのooopsを編集する
だから私はpgAdminウィンドウで以下を実行しました
CREATE USER web_user PASSWORD 'password1';
GRANT SELECT to web_user in schema PUBLIC; // Read Only
CREATE USER web_admin PASSWORD 'password2';
GRANT SELECT,INSERT,UPDATE,DELETE to web_admin in schema PUBLIC
web_userアカウントは、データベースへの読み取りアクセスのみを許可します。問題は、web_adminアカウントが同じ読み取りアクセスを持っている場合です。
web_userを削除して取り消してみました
revoke all privileges on database mydb from web_admin;
しかし、mydb内のすべてのテーブルを一覧表示する依存関係に関するエラーで失敗します
web_adminが実際に持っている特権を確認しようとしましたが、確認できませんでした。
このアカウントを削除するにはどうすればよいですか
grant web_userの構文の何が問題になっていますか?