ODPS許可權管理命令集合

ideazhang發表於2017-03-08

專案空間的安全配置

語句
說明
show SecurityConfiguration 檢視專案空間的安全配置
set CheckPermissionUsingACL=true/false 啟用/凍結ACL授權機制
set CheckPermissionUsingPolicy=true/false 啟用/凍結Policy授權機制
set ObjectCreatorHasAccessPermission=true/false 允許/禁止物件建立者預設擁有訪問許可權
set ObjectCreatorHasGrantPermission=true/false 允許/禁止物件建立者預設擁有授權許可權

資料保護

語句
說明
set ProjectProtection=false 關閉資料保護機制
set ProjectProtection=true [with exception <policy>] 開啟資料保護機制
list TrustedProjects 檢視可信專案空間列表
add TrustedProject <projectName> 新增可信專案空間
remove TrustedProject <projectName> 移除可信專案空間

 

專案空間的許可權管理

 

使用者管理

語句
說明
list users 檢視所有已新增進來的使用者
add user <username> 新增一個使用者
remove user <username> 移除一個使用者

角色管理

語句
說明
list roles 檢視所有已建立的角色
create role <rolename> 建立一個角色
drop role <rolename> 刪除建一個角色
grant <rolelist> to <username> 對使用者指派一個或多個角色
revoke <rolelist> from <username> 撤銷對使用者的角色指派

ACL授權

語句
說明
grant <privList> on <objType> <objName> to user <username> 對使用者授權
grant <privList> on <objType> <objName> to role <rolename> 對角色授權
revoke <privList> on <objType> <objName> from user <username> 撤銷對使用者的授權
revoke <privList> on <objType> <objName> from role <rolename> 撤銷對角色的授權

許可權審查

語句
說明
whoami 檢視當前使用者資訊
show grants [for <username>] [on type <objectType>] 檢視使用者許可權和角色
show acl for <objectName> [on type <objectType>] 檢視具體物件的授權資訊
describe role <roleName> 檢視角色的授權資訊和角色指派

 

詳細授權

 

MaxCompute 專案空間支援如下的物件型別及操作:

客體(Object)
操作(Action)
說明
Project Read 檢視專案空間自身(不包括專案空間的任何物件)的資訊,如CreateTime等
Project Write 更新專案空間自身(不包括專案空間的任何物件)的資訊,如Comments
Project List 檢視專案空間所有型別的物件列表
Project CreateTable 在專案空間中建立Table
Project CreateInstance 在專案空間中建立Instance
Project CreateFunction 在專案空間中建立Function
Project CreateResource 在專案空間中建立Resource
Project CreateJob 在專案空間中建立Job
Project CreateVolume 在專案空間中建立Volume
Project CreateOfflineModel 在專案空間中建立OfflineModel
Project CreateXflow 在專案空間中建立Xflow
Project All 具備上述所有許可權
Table Describe 讀取Table的元資訊
Table Select 讀取Table的資料
Table Alter 修改Table的元資訊,新增刪除分割槽
Table Update 覆蓋或新增Table的資料
Table Drop 刪除Table
Table All 具備上述所有許可權
Function Read 讀取,及執行許可權
Function Write 更新
Function Delete 刪除
Function All 具備上述所有許可權
Resource,Instance, Job, Volume Read 讀取
Resource,Instance, Job, Volume Write 更新
Resource,Instance, Job, Volume Delete 刪除
Resource,Instance, Job, Volume All 具備上述所有許可權
OfflineModel Read 讀取
OfflineModel Write 更新
OfflineModel Delete 刪除
OfflineModel All 具備上述所有許可權
Xflow Read 讀取
Xflow Write 更新
Xflow Execute 執行
Xflow Delete 刪除
Xflow All 具備上述所有許可權

注意點:

  • 上述許可權描述中Project型別物件的CreateTable操作,Table型別的Select、Alter、Update、Drop操作需要與Project物件的CreateInstance操作許可權配合使用。單獨使用上述幾種許可權而沒有指派CreateInstance許可權是無法完成對應操作的。這與ODPS的內部實現相關。類似的,Table的Select許可權也要與CreateInstance許可權配合使用。使用時請注意。
  • 所有的授權操作都必須由具有以下三種身份之一的使用者來完成:

    • 專案空間Owner
    • 專案空間中擁有admin角色的使用者
    • 專案空間中物件建立者

 

樣例

  1. use test_project; --開啟專案空間
  2. add user aliyun$alice@aliyun.com; --新增使用者
  3. add user aliyun$bob@aliyun.com; --新增使用者
  4. create role worker; --建立角色
  5. grant worker TO aliyun$alice@aliyun.com; --角色指派
  6. grant worker TO aliyun$bob@aliyun.com; --角色指派
  7. grant CreateInstance, CreateResource, CreateFunction, CreateTable, List ON PROJECT test_project TO ROLE worker; --對角色授權


相關文章