GRANT
説明
特定のオブジェクトに対する1つ以上の権限をユーザーまたはロールに付与します。
ロールをユーザーまたは他のロールに付与します。
付与可能な権限の詳細については、 Privilege items を参照してください。
GRANT 操作が実行された後、 SHOW GRANTS を実行して詳細な権限情報を表示したり、 REVOKE を実行して権限やロールを取り消したりできます。
GRANT 操作を実行する前に、関連するユーザーまたはロールが作成されていることを確認してください。詳細については、 CREATE USER および CREATE ROLE を参照してください。
user_adminロールを持つユーザーのみが、他のユーザーやロールに任意の権限を付与できます。- ロールがユーザーに 付与された後、このロールとして操作を行う前に SET ROLE を実行してこのロールを有効化する必要があります。ログイン時にすべてのデフォルトロールを有効化したい場合は、 ALTER USER または SET DEFAULT ROLE を実行してください。システム内のすべての権限をログイン時にすべてのユーザーに対して有効化したい場合は、グローバル変数
SET GLOBAL activate_all_roles_on_login = TRUE;を設定してください。 - 一般ユーザーは、
WITH GRANT OPTIONキーワードを持つ権限のみを他のユーザーやロールに付与できます。
構文
ロールまたはユーザーに権限を付与
システム
GRANT
{ CREATE RESOURCE GROUP | CREATE RESOURCE | CREATE EXTERNAL CATALOG | REPOSITORY | BLACKLIST | FILE | OPERATE | CREATE STORAGE VOLUME }
ON SYSTEM
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
リソースグループ
GRANT
{ ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE GROUP <resource_group_name> [, <resource_group_name >,...] | ALL RESOURCE GROUPS}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
リソース
GRANT
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE <resource_name> [, < resource_name >,...] | ALL RESOURCES}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
グローバル UDF
GRANT
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { GLOBAL FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL GLOBAL FUNCTIONS }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
例: GRANT usage ON GLOBAL FUNCTION a(string) to kevin;
Internal catalog
GRANT
{ USAGE | CREATE DATABASE | ALL [PRIVILEGES]}
ON CATALOG default_catalog
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
External catalog
GRANT
{ USAGE | DROP | ALL [PRIVILEGES] }
ON { CATALOG <catalog_name> [, <catalog_name>,...] | ALL CATALOGS}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
データベース
GRANT
{ ALTER | DROP | CREATE TABLE | CREATE VIEW | CREATE FUNCTION | CREATE MATERIALIZED VIEW | ALL [PRIVILEGES] }
ON { DATABASE <database_name> [, <database_name>,...] | ALL DATABASES }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
- このコマンドを実行する前に SET CATALOG を実行する必要があります。
- External Catalog 内のデータベースに対しては、CREATE TABLE 権限を Hive のみで付与できます (v3.1 以降)。
テーブル
-- 特定のテーブルに権限を付与します。
GRANT
{ ALTER | DROP | SELECT | INSERT | EXPORT | UPDATE | DELETE | ALL [PRIVILEGES]}
ON TABLE <table_name> [, < table_name >,...]
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
-- 特定のデータベースまたはすべてのデータベース内のすべてのテーブルに権限を付与します。
GRANT
{ ALTER | DROP | SELECT | INSERT | EXPORT | UPDATE | DELETE | ALL [PRIVILEGES]}
ON ALL TABLES IN { { DATABASE <database_name> } | ALL DATABASES }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
-
このコマンドを実行する前に SET CATALOG を実行する必要があります。
-
<db_name>.<table_name>を使用してテーブルを表すこともできます。 -
Internal および External Catalogs 内のすべてのテーブルに対して SELECT 権限を付与して、これらのテーブルからデータを読み取ることができます。Hive Catalogs 内のテーブルに対しては、INSERT 権限を付与してデータを書き込むことができます (v3.1 以降でサポート)。
GRANT <priv> ON TABLE <db_name>.<table_name> TO {ROLE <role_name> | USER <user_name>}
ビュー
GRANT
{ ALTER | DROP | SELECT | ALL [PRIVILEGES]}
ON { VIEW <view_name> [, < view_name >,...]
| ALL VIEWS} IN
{ { DATABASE <database_name> } | ALL DATABASES }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
-
このコマンドを 実行する前に SET CATALOG を実行する必要があります。
-
<db_name>.<view_name>を使用してビューを表すこともできます。 -
External Catalog 内のテーブルに対しては、Hive テーブルビューに対してのみ SELECT 権限を付与できます (v3.1 以降)。
GRANT <priv> ON VIEW <db_name>.<view_name> TO {ROLE <role_name> | USER <user_name>}
マテリアライズドビュー
GRANT
{ SELECT | ALTER | REFRESH | DROP | ALL [PRIVILEGES]}
ON { MATERIALIZED VIEW <mv_name> [, < mv_name >,...]
| ALL MATERIALIZED VIEWS} IN
{ { DATABASE <database_name> } | ALL DATABASES }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
-
このコマンドを実行する前に SET CATALOG を実行する必要があります。
-
<db_name>.<mv_name>を使用して mv を表すこともできます。GRANT <priv> ON MATERIALIZED VIEW <db_name>.<mv_name> TO {ROLE <role_name> | USER <user_name>}
関数
GRANT
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { FUNCTION <function_name>(input_data_type) [, < function_name >(input_data_type),...]
| ALL FUNCTIONS} IN
{ { DATABASE <database_name> } | ALL DATABASES }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
-
このコマンドを実行する前に SET CATALOG を実行する必要があります。
-
<db_name>.<function_name>を使用して関数を表すこともできます。GRANT <priv> ON FUNCTION <db_name>.<function_name>(input_data_type) TO {ROLE <role_name> | USER <user_name>}
ユーザー
GRANT IMPERSONATE
ON USER <user_identity>
TO USER <user_identity_1> [ WITH GRANT OPTION ]
ストレージボリューム
GRANT
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { STORAGE VOLUME < name > [, < name >,...] | ALL STORAGE VOLUMES}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]