Overview of privileges
権限の概要
このトピックでは、StarRocksの権限システムの基本的な概念について説明します。権限は、どのユーザーがどのオブジェクトでどの操作を行うことができるかを決定し、データとリソースを細かく管理するためのセキュリティを高めることができます。
注意:このトピックで説明されている権限は、v3.0以降でのみ利用可能です。v3.0の権限フレームワークと構文は、以前のバージョンと後方互換性がありません。v3.0へのアップグレード後、特定の操作に関する以外のほとんどの元の権限は引き継がれます。詳細な違いについては、権限のサポートの[アップグレードノート]を参照してください。
StarRocksでは、次の2つの権限モデルが採用されています。
- ロールベースのアクセス制御(RBAC):権限はロールに割り当てられ、そのロールはユーザーに割り当てられます。この場合、権限はロールを介してユーザーに渡されます。
- IDベースのアクセス制御(IBAC):権限は直接ユーザーのIDに割り当てられます。
したがって、各ユーザーのIDの最大権限範囲は、自身の権限とこのユーザーのIDに割り当てられたロールの権限の結合です。
StarRocks の権限システムを理解するための基本的な概念:
- オブジェクト:アクセスが許可されるエンティティです。グラントによって許可されない限り、アクセスは拒否されます。オブジェクトの例には、CATALOG、DATABASE、TABLE、VIEWなどがあります。詳細については、StarRocksでサポートされている権限を参照してください。
- 権限:オブジェクトに対するアクセスレベルの定義です。複数の権限を使用して、オブジェクトに対して許可されるアクセスの細粒度を制御することができます。権限はオブジェクトごとに固有です。異なるオブジェクトには異なる権限があります。権限の例には、SELECT、ALTER、DROPなどがあります。
- ユーザーID:ユーザーの固有のIDであり、権限を割り当てることができるエンティティでもあります。ユーザーIDは
username@'userhost'
という形式で表され、ユーザー名とユーザーがログインするIPから構成されます。ユーザーIDを使用すると、属性の構成が簡素化されます。同じユーザー名を共有するユーザーIDは、同じ属性を共有します。ユーザー名に属性を設定した場合、この属性はこのユーザー名を共有するすべてのユーザーIDに適用されます。 - ロール:権限を割り当てることができるエンティティです。ロールは権限の抽象的な集合体です。ロールはユーザーに割り当てることもできます。ロールは他のロールにも割り当てることができ、ロールの階層を作成することができます。データ管理を容易にするために、StarRocksはシステム定義のロールを提供しています。柔軟性を高めるために、ビジネスの要件に応じてカスタムのロールを作成することもできます。
以下の図は、RBACおよびIBACの権限モデルにおける権限管理の例を示しています。
これらのモデルでは、オブジェクトへのアクセスは、ロールとユーザーに割り当てられた権限を介して許可されます。ロールは他のロールまたはユーザーに割り当てることもできます。
オブジェクトと権限
オブジェクトは、関連する概念に関連する論理的な階層を持っています。たとえば、データベースはカタログに含まれ、テーブル、ビュー、マテリアライズドビュー、および関数はデータベースに含まれます。以下の図は、StarRocksシステムのオブジェクトの階層を示しています。