などのすべての機能を使用する場合、Djangoは基盤となるデータベースへのフルアクセスが必要です。移行 。したがって、ドキュメントではすべての権限を付与することをお勧めします。
アクセスを制限したい場合があります-例:他のアプリと共有されているアンマネージスキーマがある場合。しかし、これは非常に特別です。これらのトピックはドキュメントでカバーされておらず、DBAとして残されています。
djangoに必要な特権がわかっている場合は、好きなように付与してください。
必要な権限がわからない場合は、次の手順を使用してください。
- 完全に許可されたユーザーを使用して、開発コンテキストでプロジェクトをセットアップします。
- 新しいユーザーを作成し、権限を付与しないでください
- そのユーザーを使用するようにdjangoを切り替えます
- アプリケーションを起動してその機能を使用し、SQLエラーを待ちます。
- 必要な権限を付与する
すべてが機能する限り、手順4と5を繰り返します。後でこれを再現できるように、すべての許可を1つのSQLファイルに書き込みます。もちろん、必要であることをすでに知っている場合は、前にあるものを許可することで、プロセスを加速することができます。
おそらく必要になるでしょう
-
SELECT
ほぼすべての場合 -
INSERT
ユーザーがモデルを作成できるようにする必要がある場合 -
UPDATE
ユーザーがモデルを変更できるようにする必要がある場合 -
DELETE
ユーザーがモデルを削除できるようにする必要がある場合 REFERENCES
ユーザーが別のモデルへの外部キー制約を使用してモデルを作成する場合-REFERENCES
この別のモデルには必要です。
アプリケーションの場合に必要なのは、あなただけが知っていることです。多分SELECT
データへの読み取り可能なアクセスを提供するだけで十分です。
このように作業する場合は、展開に使用する別のユーザーが必要です。このユーザーには、移行を実行するための適切な権限があります(この場合はすべての権限を付与するのが理にかなっています)。これは各リリースに適用され、自動化されたIMOである必要があります。