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

Privileges

StarRocksでサポートされている権限

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

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

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

権限の一覧

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

SYSTEM

権限

説明

NODE

ノードの操作(追加、削除、廃止)など。クラスタのセキュリティを保護するため、この権限を直接ユーザーまたはロールに付与することはできません。cluster_adminロールにはこの権限があります。

GRANT

ユーザーやロールの作成、変更、またはユーザーやロールに対する権限の付与を行います。この権限を直接ユーザーまたはロールに付与することはできません。user_adminロールにはこの権限があります。

CREATE RESOURCE GROUP

リソースグループの作成。

CREATE RESOURCE

スパークロードジョブや外部テーブルのためのリソースを作成します。

CREATE EXTERNAL CATALOG

外部カタログの作成。

PLUGIN

プラグインのインストールまたはアンインストール。

REPOSITORY

リポジトリの作成、削除、表示。

BLACKLIST

SQLのブラックリストを作成、削除、表示します。

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(グローバルUDF)

権限

説明

USAGE

クエリ内で関数を使用します。

DROP

関数を削除します。

ALL

関数に対する上記すべての権限を持っています。

CATALOG

オブジェクト

権限

説明

CATALOG(内部カタログ)

USAGE

内部カタログ(default_catalog)を使用します。

CATALOG(内部カタログ)

CREATE DATABASE

内部カタログでデータベースを作成します。

CATALOG(内部カタログ)

ALL

内部カタログに対する上記すべての権限を持っています。

CATALOG(外部カタログ)

USAGE

外部カタログを使用してその中のテーブルを表示します。

CATALOG(外部カタログ)

DROP

外部カタログを削除します。

CATALOG(外部カタログ)

ALL

外部カタログに対する上記すべての権限を持っています。

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

DATABASE

権限

説明

ALTER

データベースのプロパティを設定したり、データベースの名前を変更したり、データベースのクオータを設定したりします。

DROP

データベースの削除。

CREATE TABLE

データベース内にテーブルを作成します。

CREATE VIEW

ビューを作成します。

CREATE FUNCTION

関数を作成します。

CREATE MATERIALIZED VIEW

マテリアライズドビューを作成します。

ALL

データベースに対する上記すべての権限を持っています。

TABLE

権限

説明

ALTER

テーブルの変更または外部テーブルのメタデータのリフレッシュです。

DROP

テーブルの削除。

SELECT

テーブル内のデータをクエリします。

INSERT

テーブルにデータを挿入します。

UPDATE

テーブル内のデータを更新します。

EXPORT

StarRocksテーブルからデータをエクスポートします。

DELETE

指定した条件に基づいてテーブルからデータを削除するか、テーブルからすべてのデータを削除します。

ALL

テーブルに対する上記すべての権限を持っています。

VIEW

権限

説明

SELECT

ビュー内のデータをクエリします。

ALTER

ビューの定義を変更します。

DROP

論理ビューを削除します。

ALL

ビューに対する上記すべての権限を持っています。

MATERIALIZED VIEW

権限

説明

SELECT

クエリを高速化するためにマテリアライズドビューをクエリします。

ALTER

マテリアライズドビューを変更します。

REFRESH

マテリアライズドビューをリフレッシュします。

DROP

マテリアライズドビューを削除します。

ALL

マテリアライズドビューに対する上記すべての権限を持っています。

FUNCTION(データベースレベルのUDF)

権限

説明

USAGE

関数の使用です。

DROP

関数を削除します。

ALL

関数に対する上記すべての権限を持っています。

STORAGE VOLUME

権限

説明

ALTER

ストレージボリュームの認証プロパティ、コメント、ステータス(有効)を変更します。

DROP

ストレージボリュームを削除します。

USAGE

ストレージボリュームを説明し、ストレージボリュームをデフォルトのストレージボリュームとして設定します。

ALL

ストレージボリュームに対する上記すべての権限を持っています。

アップグレードノート

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

操作

関連するコマンド

アップグレード前

アップグレード後

テーブルの変更

ALTER TABLE, CANCEL ALTER TABLE

テーブルまたはテーブルが所属するデータベースのLOAD_PRIV権限を持つユーザーは、ALTER TABLECANCEL ALTER TABLE操作を実行できます。

これらの2つの操作を実行するには、テーブルに対するALTER権限を持つ必要があります。

外部テーブルのリフレッシュ

REFRESH EXTERNAL TABLE

外部テーブルのLOAD_PRIV権限を持つユーザーは、外部テーブルをリフレッシュできます。

この操作を実行するには、外部テーブルに対するALTER権限が必要です。

バックアップとリストア

BACKUP, RESTORE

データベースに対するLOAD_PRIV権限を持つユーザーは、データベースまたはデータベース内の任意のテーブルをバックアップおよびリストアできます。

アップグレード後、バックアップおよびリストアの権限をユーザーに再度付与する必要があります。

削除後の復元

RECOVER

データベースとテーブルに対するALTER_PRIVCREATE_PRIVDROP_PRIVの権限を持つユーザーは、データベースとテーブルを復元できます。

データベースを復元するには、default_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操作を実行してロールと権限を割り当てる必要があります。