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

オブジェクトと権限
オブジェクトには、それが表す概念に関連する論理的な階層があります。たとえば、Database は Catalog に含まれ、Table、View、マテリアライズドビュー、Function は Database に含まれます。以下の図は、StarRocks システム内のオブジェクト階層を示しています。

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