项目空间的安全配置
语句
说明
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)
说明
ProjectRead查看项目空间自身(不包括项目空间的任何对象)的信息,如CreateTime等ProjectWrite更新项目空间自身(不包括项目空间的任何对象)的信息,如CommentsProjectList查看项目空间所有类型的对象列表ProjectCreateTable在项目空间中创建TableProjectCreateInstance在项目空间中创建InstanceProjectCreateFunction在项目空间中创建FunctionProjectCreateResource在项目空间中创建ResourceProjectCreateJob在项目空间中创建JobProjectCreateVolume在项目空间中创建VolumeProjectCreateOfflineModel在项目空间中创建OfflineModelProjectCreateXflow在项目空间中创建XflowProjectAll具备上述所有权限TableDescribe读取Table的元信息TableSelect读取Table的数据TableAlter修改Table的元信息,添加删除分区TableUpdate覆盖或添加Table的数据TableDrop删除TableTableAll具备上述所有权限FunctionRead读取,及执行权限FunctionWrite更新FunctionDelete删除FunctionAll具备上述所有权限Resource,Instance, Job, VolumeRead读取Resource,Instance, Job, VolumeWrite更新Resource,Instance, Job, VolumeDelete删除Resource,Instance, Job, VolumeAll具备上述所有权限OfflineModelRead读取OfflineModelWrite更新OfflineModelDelete删除OfflineModelAll具备上述所有权限XflowRead读取XflowWrite更新XflowExecute执行XflowDelete删除XflowAll具备上述所有权限
注意点:
上述权限描述中Project类型对象的CreateTable操作,Table类型的Select、Alter、Update、Drop操作需要与Project对象的CreateInstance操作权限配合使用。单独使用上述几种权限而没有指派CreateInstance权限是无法完成对应操作的。这与ODPS的内部实现相关。类似的,Table的Select权限也要与CreateInstance权限配合使用。使用时请注意。
所有的授权操作都必须由具有以下三种身份之一的用户来完成:
项目空间Owner项目空间中拥有admin角色的用户项目空间中对象创建者
样例
use test_project; --打开项目空间add user aliyun$alice@aliyun.com; --添加用户add user aliyun$bob@aliyun.com; --添加用户create role worker; --创建角色grant worker TO aliyun$alice@aliyun.com; --角色指派grant worker TO aliyun$bob@aliyun.com; --角色指派grant CreateInstance, CreateResource, CreateFunction, CreateTable, List ON PROJECT test_project TO ROLE worker; --对角色授权
相关资源:ODPS的使用说明