ユーザーまたはロールに付与された権限は、そのユーザーまたはロールが特定のオブジェクトに対してどの操作を実行できるかを決定します。権限は、データセキュリティを保護するためのきめ細かいアクセス制御を実装するために使用できます。
このトピックでは、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 ブラックリストおよび BE ブラックリストを作成、削除、または表示します。 |
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 操作を実行できます。 | これらの操作を実行するには、テーブルに対する ALTER 権限が必要です。 |
外部テーブルの更新 | REFRESH EXTERNAL TABLE | 外部テーブルに LOAD_PRIV 権限を持つユーザーは、外部テーブルを更新できます。 | この操作を実行するには、外部テーブルに対する ALTER 権限が必要です。 |
バックアップとリストア | BACKUP, RESTORE | データベースに LOAD_PRIV 権限を持つユーザーは、データベースまたはデータベース内の任意のテーブルをバックアップおよびリストアできます。 | アップグレード後、管理者はユーザーに再度バックアップおよびリストア権限を付与する必要があります。 |
削除後のリカバリー | RECOVER | データベースおよびテーブルに ALTER_PRIV 、CREATE_PRIV 、および DROP_PRIV 権限を持つユーザーは、データベースおよびテーブルをリカバリーできます。 | デフォルトのカタログでデータベースをリカバリーするには、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 操作を実行してロールと権限を割り当ててください。