ユーザーまたはロールに付与された権限は、そのユーザーまたはロールが特定のオブジェクトに対してどの操作を実行できるかを決定します。権限は、データセキュリティを保護するためのきめ細かいアクセス制御を実装するために使用できます。
このトピックでは、StarRocks が異なるオブジェクトに提供する権限とその意味について説明します。権限は GRANT および REVOKE を使用して付与および取り消されます。オブジェクトに付与できる権限は、オブジェクトの種類に特有です。たとえば、テーブルの権限はデータベースの権限とは異なります。
注意: このトピックで説明する権限は、v3.0 以降でのみ利用可能です。v3.0 の権限フレームワークと構文は、以前のバージョンとは互換性がありません。v3.0 にアップグレードした後、特定の操作に関するものを除いて、元の権限のほとんどは保持されます。詳細な違いについては、このトピックの最後にある アップグレードノート を参照してください。
権限リスト
このセクションでは、異なるオブジェクトで利用可能な権限について説明します。
SYSTEM
権限 | 説明 |
---|
NODE | ノードの追加、削除、または退役などの操作を行います。クラスタのセキュリティを確保するため、この権限はユーザーまたはロールに直接付与することはできません。cluster_admin ロールがこの権限を持っています。 |
GRANT | ユーザーまたはロールを作成、変更、またはユーザーまたはロールに権限を付与します。この権限はユーザーまたはロールに直接付与することはできません。user_admin ロールがこの権限を持っています。 |
CREATE RESOURCE GROUP | リソースグループを作成します。 |
CREATE RESOURCE | Spark Load ジョブまたは外部テーブルのリソースを作成します。 |
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 (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 | テーブルのデータを更新します。 |
EXPORT | StarRocks テーブルからデータをエクスポートします。 |
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_PRIV 、CREATE_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 操作を実行してロールと権限を割り当てます。