400

簡単なSQLコマンドを実行しようとしました:

select * from site_adzone;

そして、私はこのエラーを受け取りました

エラー: 関係 site_adzone の許可が拒否されました

ここで何が問題になる可能性がありますか?

他のテーブルの選択も試みましたが、同じ問題が発生しました。私もこれをやろうとしました:

GRANT ALL PRIVILEGES ON DATABASE jerry to tom;

しかし、コンソールからこの応答を得ました

警告: 「jerry」には権限が付与されていません

誰が何が間違っているのか考えていますか?

4

11 に答える 11

486

データベースに対する GRANT は、必要なものではありません。テーブルに直接付与します。

データベースに対する権限の付与は、主に接続権限の付与または取り消しに使用されます。これにより、他の十分な権限を持っている場合に、誰がデータベースで何かを行うことができるかを指定できます。

代わりに:

 GRANT ALL PRIVILEGES ON TABLE side_adzone TO jerry;

これにより、この問題が処理されます。

于 2013-03-20T11:41:55.033 に答える
312

他の人に役立つ可能性があるため、すべてのテーブルに対する付与権限について Ron E の回答を投稿します。

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;
于 2016-05-23T11:22:31.163 に答える
111

最初に適切なデータベースに接続してから、次を実行します。

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;
于 2017-01-01T20:00:43.320 に答える
79
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to jerry;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to jerry;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to jerry;
于 2018-07-18T10:36:59.030 に答える
8

テーブルの所有者として psql にログインしてください。誰がテーブルを所有しているかを調べるには\dt

psql -h CONNECTION_STRING DBNAME -U OWNER_OF_THE_TABLES

次に、GRANTSを実行できます

于 2018-05-15T17:30:02.183 に答える