操作步驟:
1、在客戶端創建role ,這裡我創建的角色名為test,命令如下:
create role + role_name
2、通過policy 方式授權project_test項目下,禁止刪除 tb_* 開頭的所有表,權限賦予test角色。命令如下:
grant drop on table tb_* to role test privilegeproperties("policy" = "true", "allow"="false");
3、將test角色賦予子賬號。命令如下:
grant test to + 子賬號
4、通過dataworks設置子賬號為開發角色。
(1)、登錄到Dataworks首頁,後點擊右上方的小扳手進入工作空間配置頁面。
(2)、進入頁面後點擊成員管理進行子賬號角色配置。
(3)、在MaxCompute客戶端執行下面的命令,將test角色權限授予子賬號,格式如下:
grant test to + 子賬號名
(4)、在MaxCompute客戶端登錄子賬號,進行權限的查看,命令如下:
show grants for + 子賬號名
(5)、子賬號刪除tb開頭表的測試如圖:
結論:通過policy可以用roles的方式進行權限控制。
參數說明:
• privilegeproperties中的{"policy" = "true"}表示當前為Policy授權。
• privilegeproperties中的{"allow"="[true|false]"}表示本次授權為白名單形式授權。黑名單形式授權為 {"deny"=" [true|false]"}。
• revoke只有allow、objectName和rolename三個參數對應時才會生效。
注意點:
1、如果不知道賬號名,可以通過 whoami 命令查看
2、添加的用戶名username既可以是雲賬號(即在阿里雲官網上註冊過的有效郵箱地址),也可以是執行此命令的雲賬號的某個RAM子賬號。