Chapter 18. データベースのロールと権限
On 10月 25, 2021 by adminデータベースのロールは、概念的にはオペレーティングシステムのユーザとは完全に別物です。 実際には対応関係を維持することが便利かもしれませんが、これは必須ではありません。 データベースロールはデータベースクラスタのインストール全体にわたってグローバルです(個々のデータベースごとではありません)。
CREATE ROLE name;
nameはSQL識別子の規則に従います。 (実際には、LOGINのようなオプションをコマンドに追加するのが普通です。 詳細は後述します)。 既存のロールを削除するには、類似のDROP ROLEコマンドを使用してください。
DROP ROLE name;
便宜上、createuserとdropuserプログラムは、シェルのコマンドラインから呼び出すことができるこれらのSQLコマンドのラッパーとして提供されています。
データベース・システムを起動するために、初期化されたばかりのシステムには常に1つの定義済みロールが含まれています。 このロールは常に “スーパーユーザ “であり、デフォルトでは(initdbの実行時に変更しない限り)データベースクラスタを初期化したオペレーティングシステムユーザと同じ名前になります。 慣習的に、このロールはpostgresという名前になります。
データベースサーバへの接続はすべて特定のロール名で行われ、このロールがその接続で発行されるコマンドの初期アクセス権限を決定します。 特定のデータベース接続に使用されるロール名は、アプリケーション固有の方法で接続要求を開始するクライアントによって示されます。 例えば、psqlプログラムでは、-Uコマンドラインオプションを使用して、接続するロールを指定します。 多くのアプリケーションは、デフォルトで現在のオペレーティングシステムのユーザ名を想定しています(createuserとpsqlを含む)。
あるクライアント接続が接続できるデータベースロールの集合は、第20章で説明するように、クライアント認証設定により決定されます。 (したがって、人のログイン名が本名と一致する必要がないように、クライアントは必ずしもオペレーティングシステムユーザと同じ名前のロールとして接続するように制限されているわけではありません)。 ロールIDは接続されたクライアントが利用できる一連の特権を決定するため、マルチユーザー環境を設定する際には慎重に設定することが重要です
。
コメントを残す