最近のバージョンの PostgreSQLユーザーは、ログインできるロールとして実装されています。これは、RBAC 実装では一般的ですか? ユーザーは、ログイン (または同様の) 機能を持つ単なる別の役割ですか? 私がこれまでに読んだことのいくつかは、それを示唆していません...しかし、私は読み間違えたか、正しいことを読んでいないだけかもしれません.
1 に答える
特に、あなたの質問で私が理解しているのは、RBACとpostgresqlでのcreate userコマンドの違いと関係です。ご存知かもしれませんが、PostgreSQLはロールの概念を使用してデータベースアクセス許可を管理します。このロールは、ロールの設定方法に応じて、データベースユーザーまたはデータベースユーザーのグループになります。
ここで説明するように、ロールはデータベースオブジェクト(テーブルなど)を所有し、それらのオブジェクトに対する特権を他のロールに割り当てて、誰がどのオブジェクトにアクセスできるかを制御できます。
さらに、CREATEUSERはCREATEROLEのエイリアスであり、詳細についてはを参照してください。唯一の違いは、コマンドのスペルがCREATE USERの場合、デフォルトでLOGINが想定されるのに対し、コマンドのスペルがCREATEROLEの場合はNOLOGINが想定されることです。(postgresql manuelに記載されています)
ロールの概念には、「ユーザー」と「グループ」の概念が含まれます。8.1より前のPostgreSQLバージョンでは、ユーザーとグループは異なる種類のエンティティでしたが、現在はロールのみが存在します。どのロールも、ユーザー、グループ、またはその両方として機能できます。
また、RBACはアクセス制御であり、データベースとの関係がありますが、データベース管理システムである他のアクセス制御(MAC DAC)と同様に、PCまたは大規模ネットワークでのあらゆる種類の「スタッフ」アクセスに使用されます。制御メカニズムは、他のアクセス制御メカニズムを適用することもできます。この場合、オブジェクトはテーブル、ビュー、プロシージャなどです。詳細はウィキペディアから読むことができます。
最後に、すべてのリレーショナルDBMSは、脅威を最小限に抑えるように設計された、ある種の固有のセキュリティメカニズムを提供します。データベースアプリケーションに適している場合は、CREATEUSERまたはCREATEROLEコマンドを使用してセキュリティリスクを軽減できます。そのため、これらのコマンドが存在します。