ユーザーまたはロールに付与された権限は、そのユーザーまたはロールが特定のオブジェクトに対してどの操作を実行できるかを決定します。権限は、データセキュリティを保護するためのきめ細かいアクセス制御を実装するために使用できます。
このトピックでは、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 | 外部 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 (internal catalog) | USAGE | 内部 catalog (default_catalog) を使用します。 |
CATALOG (internal catalog) | CREATE DATABASE | 内部 catalog にデータベースを作成します。 |
CATALOG (internal catalog) | ALL | 内部 catalog に対して上記のすべての権限を持ちます。 |
CATALOG (external catalog) | USAGE | 外部 catalog を使用します。 |
CATALOG (external catalog) | DROP | 外部 catalog を削除します。 |
CATALOG (external catalog) | ALL | 外部 catalog に対して上記のすべての権限を持ちます。 |
注意: StarRocks の内部 catalog は削除できません。
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 TABLE および CANCEL ALTER TABLE 操作を実行できます。 | テーブルに対して 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 操作を実行してロールと権限を割り当ててください。