メインコンテンツまでスキップ

データアクセス制御の概要

CelerData はロールベースのアクセス制御 (RBAC) フレームワークを採用しており、クラスタ管理者が CelerData クラスター内のオブジェクトやデータへのアクセスを正確に管理および規制することができます。

CelerData の RBAC フレームワークは、以下の主要な概念に基づいています。

  • オブジェクト: アクセスが許可されるエンティティ。たとえば、catalog、データベース、またはテーブルなど。無許可のアクセスは禁止されています。
  • 特権: オブジェクトへのアクセスの定義されたレベル。アクセスの付与の粒度を制御するために、いくつかの異なる特権が使用されます。
  • ユーザー: CelerData によって認識されるユーザーアイデンティティ。認証されたユーザーは直接 CelerData にログインできます。
  • ロール: 特権を付与できるエンティティ。ロールは他のロールやユーザーに割り当てることができます。

オブジェクトと特権

CelerData のオブジェクトは、表現する概念に関連した論理階層を持っています。たとえば、データベースは Catalog に含まれ、テーブル、ビュー、マテリアライズドビュー、関数はデータベースに含まれます。

以下の図は、CelerData クラスター内のオブジェクトの完全な階層を示しています。

Access Control-1

各オブジェクトには、付与可能な特権項目のセットがあります。これらの特権は、これらのオブジェクトに対して実行できる操作を定義します。ロールやユーザーに対して GRANT および REVOKE コマンドを通じて特権を付与および取り消すことができます。

ユーザー

CelerData クラスター内では、各ユーザーは一意のユーザー名によって識別され、これはユーザーの唯一の識別子です。

ユーザーに特権を付与する

ユーザーは特権を付与できるエンティティです。特権とロールの両方をユーザーに割り当てることができます。各ユーザーアイデンティティの最大特権範囲は、そのユーザーアイデンティティに割り当てられたロールの特権と自身の特権の和です。CelerData は、各ユーザーが許可された操作のみを実行できるようにします。

ほとんどの場合、ロールを使用して特権を渡すことをお勧めします。たとえば、ロールを作成した後、そのロールに特権を付与し、次にそのロールをユーザーに割り当てることができます。特別な特権や一時的な特権を付与したい場合は、直接ユーザーに付与することができます。これにより、特権管理が簡素化され、柔軟性が提供されます。

ロール

ロールは特権を付与および取り消すことができるエンティティです。ロールは、ユーザーに割り当てられる特権のコレクションと見なすことができ、必要な操作を実行できるようにします。ユーザーは複数のロールを割り当てられ、異なる特権セットを使用して異なる操作を実行できます。管理を簡素化するために、CelerData は ロールを通じて特権を管理することを推奨しています。特別な特権や一時的な特権は、直接ユーザーに付与することができます。

管理を容易にするために、CelerData は特定の特権を持ついくつかの システム定義ロール を提供しており、日常の管理および保守の要件を満たすのに役立ちます。また、特定のビジネスニーズやセキュリティニーズを満たすために カスタムロール を柔軟に作成することもできます。システム定義ロールの特権範囲は変更できないことに注意してください。

ロールがアクティブ化されると、ユーザーはそのロールによって許可された操作を実行できます。ユーザーがログインすると自動的にアクティブ化されるデフォルトロールを設定できます。

システム定義ロール

CelerData はいくつかの種類のシステム定義ロールを提供しています。

  • db_admin: catalog、データベース、テーブル、ビュー、マテリアライズドビュー、関数、グローバル関数に対するすべての操作を実行する特権を含む、データベース管理特権を持っています。
  • user_admin: ユーザーとロールに対する管理特権を持ち、ユーザーとロールの作成、特権の付与および取り消しを行う特権を含みます。
  • public: このロールはすべてのユーザーが所有し、すべてのセッションでデフォルトでアクティブ化され、新しいユーザーの追加を含みます。public ロールにはデフォルトで特権はありません。このロールの特権範囲を変更することができます。

カスタムロール

特定のビジネス要件を満たすためにカスタムロールを作成し、その特権範囲を変更できます。同時に、管理の便宜のために、ロールを他のロールに割り当てて特権の階層と継承を作成できます。これにより、ロールに関連付けられた特権が他のロールに継承されます。

ロール階層と特権継承

以下の図は、特権継承の例を示しています。

注意

ロールの継承レベルの最大数は16です。継承関係は双方向にすることはできません。

Access Control-2

図に示されているように:

  • role_srole_p に割り当てられています。role_prole_spriv_1 を暗黙的に継承します。
  • role_prole_g に割り当てられています。role_grole_ppriv_2role_spriv_1 を暗黙的に継承します。
  • ロールがユーザーに割り当てられると、そのユーザーもこのロールの特権を持つことになります。

アクティブロール

CelerData では、ユーザーのすべてのロールが常にアクティブ化されます。SELECT CURRENT_ROLE(); を使用して、現在のセッションでアクティブなすべてのロールを表示できます。

参照

  • CelerData がサポートする特権の詳細については、Privileges を参照してください。
  • 特権管理の詳細な手順については、Manage user privileges を参照してください。