sql >> データベース >  >> RDS >> PostgreSQL

Django:復元(移行)後にデータベースにアクセスしようとしたときにアクセス許可が拒否されました

    復元後、データベース内のすべてのオブジェクトの明示的な所有権を所有者に付与する必要があることがわかりました。所有者はスーパーユーザーではありません。データベースの作成時に所有者を設定するだけでは不十分です。移行の最終的な解決策は次のようになります:

    クライアントで:

    pg_dump -f dump.sql -Ox database
    

    サーバー上:

    su postgres    
    dropdb database
    createdb database -O user
    psql database -f dump.sql
    

    次に、権限を設定します:

    psql database -c "GRANT ALL ON ALL TABLES IN SCHEMA public to user;"
    psql database -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to user;"
    psql database -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to user;"
    

    psqlコンソールでsqlコマンドを実行することもできますが、このフォームはスクリプトなどに簡単に埋め込むことができます。



    1. SQLiteで指定された範囲内でランダムな数値を生成する方法

    2. 列の値をコンマ区切りのリストに連結する

    3. GroupyBySQLステートメントにない列を選択して並べ替える方法-Oracle

    4. MySQLのインデックスを理解する:パート2