メインコンテンツまでスキップ
バージョン: 3.1

StarRocks がサポートする権限

ユーザーまたはロールに付与された権限は、そのユーザーまたはロールが特定のオブジェクトに対してどの操作を実行できるかを決定します。権限は、データセキュリティを保護するためのきめ細かいアクセス制御を実装するために使用できます。

このトピックでは、StarRocks が異なるオブジェクトに提供する権限とその意味について説明します。権限は GRANT および REVOKE を使用して付与および取り消されます。オブジェクトに付与できる権限は、オブジェクトの種類に特有です。たとえば、テーブルの権限はデータベースの権限とは異なります。

注意: このトピックで説明する権限は、v3.0 以降でのみ利用可能です。v3.0 の権限フレームワークと構文は、以前のバージョンとは互換性がありません。v3.0 にアップグレードした後、特定の操作に関するものを除いて、元の権限のほとんどは保持されます。詳細な違いについては、このトピックの最後にある アップグレードノート を参照してください。

権限リスト

このセクションでは、異なるオブジェクトで利用可能な権限について説明します。

SYSTEM

権限説明
NODEノードの追加、削除、または退役などの操作を行います。クラスタのセキュリティを確保するため、この権限はユーザーまたはロールに直接付与することはできません。cluster_admin ロールがこの権限を持っています。
GRANTユーザーまたはロールを作成、変更、またはユーザーまたはロールに権限を付与します。この権限はユーザーまたはロールに直接付与することはできません。user_admin ロールがこの権限を持っています。
CREATE RESOURCE GROUPリソースグループを作成します。
CREATE RESOURCESpark Load ジョブまたは外部テーブルのリソースを作成します。
CREATE EXTERNAL CATALOG外部カタログを作成します。
PLUGINプラグインをインストールまたはアンインストールします。
REPOSITORYリポジトリを作成、削除、または表示します。
BLACKLISTSQL ブラックリストを作成、削除、または表示します。
FILEファイルを作成、削除、または表示します。
OPERATEレプリカ、設定項目、変数、およびトランザクションを管理します。
CREATE GLOBAL FUNCTIONグローバル UDF を作成します。
CREATE STORAGE VOLUMEリモートストレージシステムのストレージボリュームを作成します。

RESOURCE GROUP

権限説明
ALTERリソースグループのクラシファイア(分類器)を追加または削除します。
DROPリソースグループを削除します。
ALLリソースグループに対して上記のすべての権限を持っています。

RESOURCE

権限説明
USAGEリソースを使用します。
ALTERリソースを変更します。
DROPリソースを削除します。
ALLリソースに対して上記のすべての権限を持っています。

USER

権限説明
IMPERSONATEユーザー A がユーザー B として操作を行うことを許可します。

GLOBAL FUNCTION (Global UDFs)

権限説明
USAGEクエリで関数を使用します。
DROP関数を削除します。
ALL関数に対して上記のすべての権限を持っています。

CATALOG

オブジェクト権限説明
CATALOG (internal catalog)USAGE内部カタログ (default_catalog) を使用します。
CATALOG (internal catalog)CREATE DATABASE内部カタログにデータベースを作成します。
CATALOG (internal catalog)ALL内部カタログに対して上記のすべての権限を持っています。
CATALOG (external catalog)USAGE外部カタログを使用します。
CATALOG (external catalog)DROP外部カタログを削除します。
CATALOG (external catalog)ALL外部カタログに対して上記のすべての権限を持っています。

注意: StarRocks の内部カタログは削除できません。

DATABASE

権限説明
ALTERデータベースのプロパティを設定、データベースの名前を変更、またはデータベースのクォータを設定します。
DROPデータベースを削除します。
CREATE TABLEデータベースにテーブルを作成します。
CREATE VIEWビューを作成します。
CREATE FUNCTION関数を作成します。
CREATE MATERIALIZED VIEWマテリアライズドビューを作成します。
ALLデータベースに対して上記のすべての権限を持っています。

TABLE

権限説明
ALTERテーブルを変更するか、外部テーブルのメタデータをリフレッシュします。
DROPテーブルを削除します。
SELECTテーブルのデータをクエリします。
INSERTテーブルにデータを挿入します。
UPDATEテーブルのデータを更新します。
EXPORTStarRocks テーブルからデータをエクスポートします。
DELETE指定された条件に基づいてテーブルからデータを削除するか、テーブルからすべてのデータを削除します。
ALLテーブルに対して上記のすべての権限を持っています。

VIEW

権限説明
SELECTビューのデータをクエリします。
ALTERビューの定義を変更します。
DROPビューを削除します。
ALLビューに対して上記のすべての権限を持っています。

MATERIALIZED VIEW

権限説明
SELECTクエリを高速化するためにマテリアライズドビューをクエリします。
ALTERマテリアライズドビューを変更します。
REFRESHマテリアライズドビューをリフレッシュします。
DROPマテリアライズドビューを削除します。
ALLマテリアライズドビューに対して上記のすべての権限を持っています。

FUNCTION (Database-level UDFs)

権限説明
USAGE関数を使用します。
DROP関数を削除します。
ALL関数に対して上記のすべての権限を持っています。

STORAGE VOLUME

権限説明
ALTERストレージボリュームの資格情報プロパティ、コメント、またはステータス(有効)を変更します。
DROPストレージボリュームを削除します。
USAGEストレージボリュームを説明し、デフォルトのストレージボリュームとして設定します。
ALLストレージボリュームに対して上記のすべての権限を持っています。

アップグレードノート

v2.x から v3.0 へのアップグレード中に、新しい権限システムの導入により、一部の操作が実行できなくなる場合があります。以下の表は、アップグレード前後の変更について説明しています。

操作関連するコマンド
テーブルの変更ALTER TABLE, CANCEL ALTER TABLEテーブルまたはそのテーブルが属するデータベースに対して LOAD_PRIV 権限を持つユーザーは、ALTER TABLE および CANCEL ALTER TABLE 操作を実行できます。これらの 2 つの操作を実行するには、テーブルに対する ALTER 権限を持っている必要があります。
外部テーブルのリフレッシュREFRESH EXTERNAL TABLE外部テーブルに対して LOAD_PRIV 権限を持つユーザーは、外部テーブルをリフレッシュできます。この操作を実行するには、外部テーブルに対する ALTER 権限を持っている必要があります。
バックアップとリストアBACKUP, RESTOREデータベースに対して LOAD_PRIV 権限を持つユーザーは、データベースまたはデータベース内の任意のテーブルをバックアップおよびリストアできます。アップグレード後、管理者はユーザーに再度バックアップおよびリストア権限を付与する必要があります。
削除後のリカバリRECOVERデータベースおよびテーブルに対して ALTER_PRIVCREATE_PRIV、および DROP_PRIV 権限を持つユーザーは、データベースおよびテーブルをリカバリできます。デフォルトの catalog に対する CREATE DATABASE 権限を持っている必要があります。データベースに対する CREATE TABLE 権限とテーブルに対する DROP 権限を持っている必要があります。
ユーザーの作成と変更CREATE USER, ALTER USERデータベースに対して GRANT_PRIV 権限を持つユーザーは、ユーザーを作成および変更できます。ユーザーを作成および変更するには、user_admin ロールを持っている必要があります。
権限の付与と取り消しGRANT, REVOKEオブジェクトに対して GRANT_PRIV 権限を持つユーザーは、そのオブジェクトに対する権限を他のユーザーまたはロールに付与できます。アップグレード後も、すでに持っているオブジェクトに対する権限を他のユーザーまたはロールに付与できます。
新しい権限システムでは:
  • 他のユーザーまたはロールに権限を付与するには、user_admin ロールを持っている必要があります。
  • GRANT 文に WITH GRANT OPTION が含まれている場合、その文に含まれる権限を他のユーザーまたはロールに付与できます。

v2.x では、StarRocks はロールベースのアクセス制御 (RBAC) を完全には実装していません。ユーザーにロールを割り当てると、StarRocks はそのロールのすべての権限をユーザーに直接付与し、ロール自体ではありません。したがって、ユーザーは実際にはロールを所有していません。

v3.0 では、StarRocks は権限システムを刷新しました。v3.0 にアップグレードした後、元のロールは保持されますが、ユーザーとロールの間に所有権はありません。新しい RBAC システムを使用するには、GRANT 操作を実行してロールと権限を割り当てます。