本トピックでは、特権アカウントと標準アカウントの権限について説明します。
はじめに
データベースのセキュリティを確保するためには、ユーザーにタスクに必要な権限のみを付与することで、ユーザー権限を管理および制限する必要があります。ApsaraDB は、ロールベースアクセス制御 (RBAC) モデルを使用してユーザー権限を管理します。このモデルでは、ユーザーをさまざまなロールに割り当て、各ロールには特定の権限セットがあります。このモデルは、効果的なアクセス制御を提供し、データベースのセキュリティを強化します。
データベースは、特権ユーザーと一般ユーザーの 2 つのロールをユーザーに提供します。
特権ユーザーは、データベースの作成、基本権限の付与、パブリケーションとサブスクリプションの作成などの管理タスクを実行します。
一般ユーザーは、さまざまなビジネスロジック操作を実行します。
PolarDB は、この権限システムを使用してデータベースの操作タイプを定義し、アクセス制御モデルを実装して ApsaraDB のセキュリティを強化します。
特権ユーザーの権限
アカウントタイプ | 権限 |
特権アカウント | テーブル、インデックス、型、ビュー、関数、プロシージャなど、すべての非システムオブジェクトの作成、更新、アクセス、削除。これらのオブジェクトに対する権限はすべての特権ユーザー間で共有されるため、どの特権ユーザーも他の特権ユーザーが所有するオブジェクトにアクセスできます。 |
データベースの作成。詳細については、「データベースの作成」をご参照ください。 | |
拡張機能の作成。詳細については、「拡張機能」をご参照ください。 | |
自身の権限を超えない範囲でのユーザー作成。詳細については、「ユーザーを作成する」をご参照ください。 | |
イベントトリガーの作成と使用。詳細については、「トリガーの作成」をご参照ください。 | |
型の作成と変更。詳細については、「オブジェクトタイプの作成」をご参照ください。 | |
GC 命令の呼び出し。詳細については、「GC の仕組み」をご参照ください。 | |
外部データラッパー (FDW) の作成と変更。詳細については、「oss_fdw を使用した外部テキストファイルの読み書き」をご参照ください。 | |
パブリケーションとサブスクリプションを作成します。例: 説明 サブスクリプションを作成するには、 | |
2 フェーズコミットを使用します。例: | |
シグナルを送信します。例: | |
バックグラウンドプロセスのステータスの表示。例: |
標準ユーザーの権限
アカウントタイプ | 権限 |
標準アカウント | すべてのデータベースへの接続権限。 |
PUBLIC 権限を持つオブジェクトをクエリする権限。 |
特権ユーザーと標準ユーザーが利用できない権限
以下の権限は、データベースにセキュリティリスクをもたらすため、すべてのユーザーに対して禁止されています。
アカウントタイプ | 権限 |
特権アカウント/標準アカウント | システム パラメータを変更します。 |
表領域の作成。 | |
スーパーユーザープロセスの強制終了。 | |
信頼できない言語の実行。 説明 plpgsql は信頼できる言語です。他のすべての言語は信頼できないため、実行できません。 |
ユーザー グループの権限
クラウドネイティブデータベースである PolarDB for PostgreSQL は PostgreSQL 上に構築されており、PostgreSQL からいくつかのグループ権限を継承しています。このセクションでは、これらのグループ権限の継承メカニズムについて説明します。これらの権限は、前述の特権ユーザーの権限と組み合わされます。最終的な権限セットは、両方の和集合です。
権限名 | 権限ステータス | 説明 |
pg_read_all_stats & pg_stat_scan_tables | フル | 統計情報に関連する完全な権限。 |
pg_signal_backend | フル | 他のプロセスにシグナルを送信するための完全な権限。 |
pg_polar_superuser | フル | 特権ユーザーのための一連の権限を含む特権ユーザーグループ。完全に所有されます。 |
pg_polar_replication | フル | ストリーミングレプリケーションを使用する権限を提供します。完全に所有されます。 |
pg_monitor | 完全 | モニタリング権限を提供しますが、ローカルファイルの読み取りおよび書き込み権限はブロックします。 |
pg_read_all_data & pg_write_all_data | 制限付き | 任意のテーブルを読み書きする権限。任意のユーザーテーブルを読み書きでき、ほとんどのシステムテーブルを読み取ることができます。一部のシステムテーブルへのアクセスは、セキュリティ上の理由からブロックされます。 |
pg_read_all_settings | 制限付き | 任意のパラメーターを読み取る権限。権限範囲内のパラメーターを読み取ることができます。一部のパラメーターへのアクセスは、セキュリティ上の理由からブロックされます。 |
pg_read_server_files & pg_write_server_files | ブロック済み | ローカルファイルの読み書き権限はサポートされていません。 |
pg_execute_server_program | ブロック済み | バイナリコマンドの実行権限はサポートされていません。 |