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

PostgreSQLの役割を削除できません。エラー: `一部のオブジェクトがそれに依存しているため、削除できません`

    DROP USER (または DROP ROLE 、同じこと)ロールがまだ何かを所有しているか、他のオブジェクトに対して付与された特権を持っている間は続行できません。

    DROP OWNEDですべての権限を削除します (文言からはあまり明白ではありません)マニュアル:

    したがって、役割を削除するための信頼できるコマンドのシーケンスは次のとおりです。

    REASSIGN OWNED BY ryan TO postgres;  -- or some other trusted role
    DROP OWNED BY ryan;
    

    同じクラスターのすべてのデータベースで両方のコマンドを実行します 役割が何かを所有している、または特権を持っている場合!
    そして最後に:

    DROP USER ryan;
    
    • REASSIGN OWNED ロールが現在所有しているすべてのオブジェクトの所有権を変更します。
    • DROP OWNED その後、特権のみを取り消します(所有権は邪魔になりません)。

    または、REASSIGN OWNEDをスキップすることもできます 。次に、DROP OWNED (また)ユーザーが所有するすべてのオブジェクトを削除します。 (よろしいですか?!)

    関連:



    1. Drupal6で定義された分類用語ごとに最新のノードを選択します

    2. OracleのDECODE関数に相当するMySQL

    3. 配列を使用して選択する方法には、psqlのvalue句が含まれています

    4. Oracleでテーブルを更新する方法