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

Django + PostgreSQL:データベースの作成(付与する特権)

    などのすべての機能を使用する場合、Djangoは基盤となるデータベースへのフルアクセスが必要です。移行 。したがって、ドキュメントではすべての権限を付与することをお勧めします。

    アクセスを制限したい場合があります-例:他のアプリと共有されているアンマネージスキーマがある場合。しかし、これは非常に特別です。これらのトピックはドキュメントでカバーされておらず、DBAとして残されています。

    djangoに必要な特権がわかっている場合は、好きなように付与してください。

    必要な権限がわからない場合は、次の手順を使用してください。

    1. 完全に許可されたユーザーを使用して、開発コンテキストでプロジェクトをセットアップします。
    2. 新しいユーザーを作成し、権限を付与しないでください
    3. そのユーザーを使用するようにdjangoを切り替えます
    4. アプリケーションを起動してその機能を使用し、SQLエラーを待ちます。
    5. 必要な権限を付与する

    すべてが機能する限り、手順4と5を繰り返します。後でこれを再現できるように、すべての許可を1つのSQLファイルに書き込みます。もちろん、必要であることをすでに知っている場合は、前にあるものを許可することで、プロセスを加速することができます。

    おそらく必要になるでしょう

    • SELECT ほぼすべての場合
    • INSERT ユーザーがモデルを作成できるようにする必要がある場合
    • UPDATE ユーザーがモデルを変更できるようにする必要がある場合
    • DELETE ユーザーがモデルを削除できるようにする必要がある場合
    • REFERENCES ユーザーが別のモデルへの外部キー制約を使用してモデルを作成する場合-REFERENCES この別のモデルには必要です。

    アプリケーションの場合に必要なのは、あなただけが知っていることです。多分SELECT データへの読み取り可能なアクセスを提供するだけで十分です。

    このように作業する場合は、展開に使用する別のユーザーが必要です。このユーザーには、移行を実行するための適切な権限があります(この場合はすべての権限を付与するのが理にかなっています)。これは各リリースに適用され、自動化されたIMOである必要があります。




    1. SQLite-データベースを作成する

    2. gem pgを使用してRubyスクリプトからPostgres(pg)データベースに接続できません(これはレールではなく、純粋なルビーです)

    3. zxJDBCを使用したプロシージャの呼び出しでの引数の数またはタイプが間違っています

    4. 内部参加のカウントとすべてのアイテムのカウントを取得するにはどうすればよいですか?