このトピックでは、MaxCompute プロジェクトのすべての権限管理コマンドについて説明します。これらのコマンドは、ユーザー管理、ロール管理、ユーザーとロールの権限付与、および権限クエリを対象としています。
ロール管理
コマンド
create role <role_name> [privilegeproperties("type"="admin|resource")];例
Worker という名前のリソースロールを作成します。サンプル文:
create role Worker;sale_admin という名前の管理者ロールを作成します。サンプル文:
create role sale_admin privilegeproperties("type"="admin");
list roles;コマンド
drop role <role_name>;例
drop role Worker;
ユーザー管理
プロジェクトレベルの Alibaba Cloud アカウントを追加する
コマンド
例
プロジェクトレベルの Alibaba Cloud アカウントを削除する
コマンド
例
コマンド
例
コマンド
例
コマンド
例
コマンド
remove user `RAM$<account_id>:role/<RAM role name>`;例
remove user ALIYUN$5527xxxxxxxx5788;
list users;
ロールの権限付与
プロジェクトを操作する権限をロールに付与する
コマンド
ACL 権限付与
GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All ON project <project_name> TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];ACL 構文を使用したポリシー権限付与
GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All ON project <project_name> TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
例
-- ACL 権限付与。 grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker; -- ポリシー権限付与。 grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
テーブルを操作する権限をロールに付与する
コマンド
ACL 権限付与
GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All ON TABLE <table_name> [(<column_list>)] TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];ACL 構文を使用したポリシー権限付与
GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All ON TABLE <table_name> [(<column_list>)] TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
例
-- ACL 権限付与。 grant Describe, Select on table sale_detail to ROLE Worker; -- ポリシー権限付与。 grant Describe, Select on table sale_detail to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
モデルを操作する権限をロールに付与する
コマンド
ACL 権限付与
GRANT Describe|Execute|Alter|Drop|All ON MODEL <model_name> TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];ACL 構文を使用したポリシー権限付与
GRANT Describe|Execute|Alter|Drop|All ON MODEL <model_name> TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
例
-- test_project_a プロジェクトに入ります。 use test_project_a; -- ACL 権限付与。 GRANT All ON MODEL my_model TO ROLE Worker; -- ACL 構文を使用したポリシー権限付与。 GRANT All ON MODEL my_model TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
リソースを操作する権限をロールに付与する
コマンド
ACL 権限付与
GRANT Read|Write|Delete|All ON resource <resource_name> TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];ACL 構文を使用したポリシー権限付与
GRANT Read|Write|Delete|All ON resource <resource_name> TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
例
-- ACL 権限付与。 grant Read, Write on resource udtf.jar to ROLE Worker; -- ポリシー権限付与。 grant Read, Write on resource udtf.jar to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
関数を操作する権限をロールに付与する
コマンド
GRANT Read|Write|Delete|Execute|All ON FUNCTION <function_name> TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];例
-- ACL 権限付与。 grant Read, Write on function udf_test to ROLE Worker; -- ポリシー権限付与。 grant Read, Write on function udf_test to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
インスタンスを操作する権限をロールに付与する
コマンド
ACL 権限付与
GRANT Read|Write|All ON instance <instance_id> TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];ACL 構文を使用したポリシー権限付与
GRANT Read|Write|All ON instance <instance_id> TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
例
-- ACL 権限付与。 grant All on instance 202112300224**** to ROLE Worker; -- ポリシー権限付与。 grant All on instance 202112300224**** to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールからプロジェクトを操作する権限を取り消す
コマンド
ACL を使用して付与された権限を取り消す
REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All ON project <project_name> FROM ROLE <role_name>;ポリシー権限付与を使用して付与された権限を取り消す
REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All ON project <project_name> FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
例
-- ACL 権限付与を取り消します。 revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker; -- ポリシー権限付与を取り消します。 revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールからテーブルを操作する権限を取り消す
コマンド
ACL を使用して付与された権限を取り消す
REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All ON TABLE <table_name> [(<column_list>)] FROM ROLE <role_name>;ポリシー権限付与を使用して付与された権限を取り消す
REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All ON TABLE <table_name> [(<column_list>)] FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
例
-- ACL 権限付与を取り消します。 revoke Describe, Select on table sale_detail to ROLE Worker; -- ポリシー権限付与を取り消します。 revoke Describe, Select on table sale_detail from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールからモデルを操作する権限を取り消す
コマンド
ACL を使用して付与された権限を取り消す
REVOKE Describe|Execute|Alter|Drop|All ON MODEL <model_name> FROM ROLE <role_name>;ポリシー権限付与を使用して付与された権限を取り消す
REVOKE Describe|Execute|Alter|Drop|All ON MODEL <model_name> FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
例
-- test_project_a プロジェクトに入ります。 use test_project_a; -- ACL 権限付与を取り消します。 REVOKE All ON MODEL my_model FROM ROLE Worker; -- ポリシー権限付与を取り消します。 REVOKE All ON MODEL my_model FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールからリソースを操作する権限を取り消す
コマンド
ACL を使用して付与された権限を取り消す
REVOKE Read|Write|Delete|All ON resource <resource_name> FROM ROLE <role_name>;ポリシー権限付与を使用して付与された権限を取り消す
REVOKE Read|Write|Delete|All ON resource <resource_name> FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
例
-- ACL 権限付与を取り消します。 revoke Read, Write on resource udtf.jar from ROLE Worker; -- ポリシー権限付与を取り消します。 revoke Read, Write on resource udtf.jar from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールから関数を操作する権限を取り消す
コマンド
ACL を使用して付与された権限を取り消す
REVOKE Read|Write|Delete|Execute|All ON FUNCTION <function_name> FROM ROLE <role_name>;ポリシー権限付与を使用して付与された権限を取り消す
REVOKE Read|Write|Delete|Execute|All ON FUNCTION <function_name> FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
例
-- ACL 権限付与を取り消します。 revoke Read, Write on function udf_test from ROLE Worker; -- ポリシー権限付与を取り消します。 revoke Read, Write on function udf_test from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
ロールからインスタンスを操作する権限を取り消す
コマンド
REVOKE Read|Write|All ON instance <instance_id> FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");例
-- ACL 権限付与を取り消します。 revoke All on instance 202112300224**** from ROLE Worker; -- ポリシー権限付与を取り消します。 revoke All on instance 202112300224**** from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
コマンド
GRANT Download ON {Table|Resource|Function|Instance} <object_name> TO ROLE <role_name>;例
grant download on table sale_detail to ROLE Worker;
コマンド
REVOKE Download ON {Table|Resource|Function|Instance} <object_name> FROM ROLE <role_name>;例
revoke download on table sale_detail from ROLE Worker;
コマンド
GRANT Label <number> ON TABLE <table_name> [(<column_list>)] TO ROLE <role_name> [WITH exp <days>];例
grant Label 4 on table sale_detail to ROLE Worker;
コマンド
REVOKE Label ON TABLE <table_name> [(<column_list>)] FROM ROLE <role_name>;例
revoke Label on table sale_detail from ROLE Worker;
コマンド
GRANT <role_name> TO <user_name>;例
grant Worker to ALIYUN$Ka**@aliyun.com; grant Worker to RAM$Bo*@aliyun.com:Allen;
コマンド
REVOKE <role_name> FROM <user_name>;例
revoke Worker from ALIYUN$Ka**@aliyun.com; revoke Worker from RAM$Bo*@aliyun.com:Allen;
ユーザーの権限付与
プロジェクトを操作する権限をユーザーに付与する
コマンド
grant Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>",例
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to user RAM$Ka**@aliyun.com:Lily;
テーブルを操作する権限をユーザーに付与する
コマンド
grant Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] to USER <user_name> [privilegeproperties("conditions" = "<conditions>"例
grant Describe, Select on table sale_detail to USER RAM$Bo*@aliyun.com:Allen;
リソースを操作する権限をユーザーに付与する
コマンド
grant Read|Write|Delete|All on resource <resource_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>",例
grant Read, Write on resource udtf.jar to USER RAM$Bo*@aliyun.com:Alice;
関数を操作する権限をユーザーに付与する
コマンド
grant Read|Write|Delete|Execute|All on function <function_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>"例
grant Read, Write on function udf_test to USER RAM$Bo*@aliyun.com:Tom;
インスタンスを操作する権限をユーザーに付与する
コマンド
grant Read|Write|All on instance <instance_id> to USER <user_name> [privilegeproperties("conditions" = "<conditions>"例
grant All on instance 202112300224**** to USER RAM$Bo*@aliyun.com:Tom;
ユーザーからプロジェクトを操作する権限を取り消す
コマンド
revoke Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> from USER <user_name>;例
revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from user RAM$Ka**@aliyun.com:Lily;
ユーザーからテーブルを操作する権限を取り消す
コマンド
revoke Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] from USER <user_name>;例
revoke Describe, Select on table sale_detail from USER RAM$Bo*@aliyun.com:Allen;
ユーザーからリソースを操作する権限を取り消す
コマンド
revoke Read|Write|Delete|All on resource <resource_name> from USER <user_name>;例
revoke Read, Write on resource udtf.jar from USER RAM$Bo*@aliyun.com:Alice;
ユーザーから関数を操作する権限を取り消す
コマンド
revoke Read|Write|Delete|Execute|All on function <function_name> from USER <user_name>;例
revoke Read, Write on function udf_test from USER RAM$Bo*@aliyun.com:Tom;
ユーザーからインスタンスを操作する権限を取り消す
コマンド
revoke Read|Write|All on instance <instance_id> from USER <user_name>;例
revoke All on instance 202112300224**** from USER RAM$Bo*@aliyun.com:Tom;
コマンド
詳細については、「オブジェクトに対するロールの操作権限を付与する」および「ユーザーにロールを割り当てる」をご参照ください。
例
-- Worker ロールに権限を付与します。 -- ACL 権限付与。 grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker; -- ポリシー権限付与。 grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker privilegeproperties("policy" = "true", "allow"="true"); -- Worker ロールをユーザーに割り当てます。 grant Worker to RAM$Bo*@aliyun.com:Allen; grant Worker to RAM$Bo*@aliyun.com:Alice; grant Worker to RAM$Bob@aliyun.com:Tom;
コマンド
詳細については、「オブジェクトに対するロールの操作権限を取り消す」または「ユーザーからロールを取り消す」をご参照ください。
例
-- Worker ロールから権限を取り消します。 -- ACL 権限付与を取り消します。 revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker; -- ポリシー権限付与を取り消します。 revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker privilegeproperties("policy" = "true", "allow"="true"); -- または -- ユーザーから Worker ロールを取り消します。 revoke Worker from RAM$Bo*@aliyun.com:Allen;
コマンド
grant Download on {Table|Resource|Function|Instance} <object_name> to USER <user_name>;例
grant Download on table sale_detail to USER RAM$Bo*@aliyun.com:Allen;
コマンド
revoke Download on {Table|Resource|Function|Instance} <object_name> from USER <user_name>;例
revoke Download on table sale_detail from USER RAM$Bo*@aliyun.com:Allen;
コマンド
詳細については、「ロールにダウンロード権限を付与する」および「ユーザーにロールを割り当てる」をご参照ください。
例
-- Worker という名前のロールを作成します。 create role Worker; -- Worker ロールに権限を付与します。 grant download on table sale_detail to ROLE Worker; -- Worker ロールをユーザーに割り当てます。 grant Worker to RAM$Bo*@aliyun.com:Allen; grant Worker to RAM$Bo*@aliyun.com:Alice; grant Worker to RAM$Bob@aliyun.com:Tom;
コマンド
詳細については、「ロールからダウンロード権限を取り消す」または「ユーザーからロールを取り消す」をご参照ください。
例
-- Worker ロールから権限を取り消します。 revoke download on table sale_detail from ROLE Worker; -- または -- ユーザーから Worker ロールを取り消します。 revoke Worker from RAM$Bo*@aliyun.com:Allen;
コマンド
grant Label <number> on table <table_name> [(<column_list>)] to USER <user_name> [with exp <days>];例
grant Label 4 on table sale_detail to USER RAM$Bo*@aliyun.com:Allen;
コマンド
revoke Label on table <table_name> [(<column_list>)] from USER <user_name>;例
revoke Label on table sale_detail from ROLE Worker;
コマンド
詳細については、「機密性の高いデータにアクセスする権限をロールに付与する」および「ユーザーにロールを割り当てる」をご参照ください。
例
-- Worker という名前のロールを作成します。 create role Worker; -- Worker ロールに権限を付与します。 grant Label 4 on table * to ROLE Worker; -- Worker ロールをユーザーに割り当てます。 grant Worker to RAM$Bo*@aliyun.com:Allen; grant Worker to RAM$Bo*@aliyun.com:Alice; grant Worker to RAM$Bob@aliyun.com:Tom;
コマンド
詳細については、「ロールから機密性の高いデータにアクセスする権限を取り消す」または「ユーザーからロールを取り消す」をご参照ください。
例
-- Worker ロールから権限を取り消します。 revoke Label on table * from ROLE Worker; -- または -- ユーザーから Worker ロールを取り消します。 revoke Worker from RAM$Bo*@aliyun.com:Allen;
コマンド
purge privs from user <user_name>;例
purge privs from user RAM$Bo*@aliyun.com:Allen;
権限情報のクエリ
指定されたロールの権限と、そのロールがアタッチされているユーザーに関する情報のクエリ
指定されたロールの権限と、そのロールがアタッチされているユーザーをクエリする方法の詳細については、「指定されたロールの権限と、そのロールがアタッチされているユーザーに関する情報のクエリ」をご参照ください。
コマンド
describe role <role_name>;例
describe role Worker;
ユーザーの権限情報のクエリ
現在のユーザーの権限と、そのユーザーにアタッチされているロールのクエリ
show grants;指定されたユーザーの権限と、そのユーザーにアタッチされているロールのクエリ
コマンド
show grants for <user_name>;例
show grants for ALIYUN$Bo*@aliyun.com; show grants for RAM$Bo*@aliyun.com:Allen;
オブジェクトの ACL 権限付与情報のクエリ
オブジェクトの ACL 権限付与をクエリする方法の詳細については、「指定されたオブジェクトの ACL 権限付与情報のクエリ」をご参照ください。
コマンド
show acl for <object_name> [on type <object_type>];例
show acl for test_project_a on type project;
ラベルベースの権限情報のクエリ
現在のユーザーがアクセスできるすべての機密性の高いデータテーブルのクエリ
show label grants;現在のユーザーがアクセスできる指定されたレベルの機密性の高いデータテーブルのクエリ
コマンド
show label <level> grants;例
show label 2 grants;
指定されたユーザーがアクセスできる機密性の高いデータテーブルのクエリ
コマンド
show label grants for user <user_name>;例
show label grants for user RAM$Bob@aliyun.com:Allen;
指定されたユーザーがアクセスできる指定されたレベルの機密性の高いデータテーブルのクエリ
コマンド
show label <level> grants for user <user_name>;例
show label 3 grants for user RAM$Bob@aliyun.com:Allen;
指定された機密データテーブルにアクセスできるユーザーのクエリ
コマンド
show label grants on table <table_name>;例
show label grants on table sale_detail;
指定された機密データテーブルにアクセスできる指定されたレベルのユーザーのクエリ
コマンド
show label <level> grants on table <table_name>;例
show label 4 grants on table sale_detail;
指定された機密データテーブルに対する指定されたユーザーの権限のクエリ
コマンド
show label [<label>] grants on table <table_name> for user <user_name>;例
show label grants on table sale_detail for user RAM$Bob@aliyun.com:Allen;
コマンド
describe <table_name>;例
describe sale_detail;
パッケージ権限付与情報のクエリ
コマンド
show acl for <project_name>.<package_name> on type package;例
show acl for test_project_b.datashare on type package;
コマンド
show grants on <object_type> <object_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package _name>");例
show grants on Table sale_detail privilegeproperties ("refobject"="true", "refproject"="test_project_a", "package"="datashare");
指定されたパッケージ内のテーブルのラベルベースの権限付与のクエリ
コマンド
show label grants on table <table_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package_name>");例
show label grants on table sale_detail privilegeproperties ("refobject"="true", "refproject"="test_project_a", "package"="datashare");
プロジェクトのセキュリティ構成の表示
プロジェクトデータ保護
プロジェクトのデータ保護メカニズムを有効または無効にする
set ProjectProtection=true|false;プロジェクトのセキュリティ構成を表示する
show SecurityConfiguration;返された結果には
ProjectProtection=true|falseが含まれており、それぞれプロジェクトデータ保護が有効または無効であることを示します。
追加された信頼できるプロジェクトの表示
list trustedprojects;LabelSecurity アクセス制御ポリシー
LabelSecurity アクセス制御ポリシーを有効または無効にする
set LabelSecurity=true|false;プロジェクトのセキュリティ構成を表示する
show SecurityConfiguration;返された結果には
LabelSecurity=true|falseが含まれます。値が true の場合は、プロジェクトでラベルベースのアクセス制御が有効になっていることを示し、値が false の場合は無効になっていることを示します。
ダウンロード権限コントロール機能
ダウンロード権限コントロール機能を有効または無効にする
setproject odps.security.enabledownloadprivilege=true|false;プロジェクトプロパティの表示
setproject;返された結果には
odps.security.enabledownloadprivilege = true|falseが含まれます。trueはプロジェクトのダウンロードコントロール機能が有効であることを示し、falseは無効であることを示します。