DB初心者です。
PostgreSQL 12です。
PostgreSQLサーバーは、AWS RDSを利用しております。
反例)
ユーザー:SQL実行者
グループ:アクセスできる範囲を意味しています。
グループ配下には、DB、スキーマ、テーブルが存在するとします。
グループA:ユーザー1、ユーザー2
グループB:ユーザー3、ユーザー4
グループA配下のテーブルは、ユーザー1、ユーザー2がSQLコマンドを実行でき、ユーザー3、ユーザー4SQLコマンドを実行できない。
グループB配下のテーブルは、ユーザー3、ユーザー4がSQLコマンドを実行でき、ユーザー1、ユーザー2SQLコマンドを実行できない。
この時、PostgreSQLの考え方として、グループを
・複数のDBで分ける
・1つのDBで複数のスキーマで分ける
の2つの方法があるかと思います。
各ユーザーは、グループごとの DB or スキーマ の設定をGRANTで行うことで制御できるかと思いますが、
ここで、DBで分ける場合とスキーマで分ける場合について、メリットデメリットをご教授いただきたいです。
一つのDATABASEに対して、複数のスキーマ(この場合グループA、グループBの計2つ)を作成し、アクセス制御を行う方法と、複数のDATABASE(この場合グループA、グループBの計2つ)を作成し、アクセス制御を行う方法は、どちらを選択するべきでしょうかといったご質問となります。
基本的には、「・1つのDBで複数のスキーマで分ける」の方が運用が楽という意味で、メリットがあるかと思いますが、
それくらいしか思いつかないため、何かそれ以外の根拠となる明確なご回答をいただきたいです。
回答1件
あなたの回答
tips
プレビュー