使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
来源:互联网 发布:走步软件哪个好 编辑:程序博客网 时间:2024/06/05 05:39
转自zhenhong
使用 MaxCompute console 的同学,可能都使用过 odps 安全相关的命令。官方文档上有详细的 odps 安全指南,并给出了安全相关命令列表。
简而言之,权限管理、项目空间安全配置以及用户及授权管理都属于 odps 安全命令相关的范畴。
再直白一点,以下列关键字开头的命令,都是 odps 安全相关操作命令:
GRANT/REVOKE ...SHOW GRANTS/ACL/PACKAGE/LABEL/ROLE/PRINCIPALSSHOW PRIV/PRIVILEGESLIST/ADD/REOVE USERS/ROLES/TRUSTEDPROJECTSDROP/CREATE ROLECLEAR EXPIRED GRANTSDESC/DESCRIBE ROLE/PACKAGECREATE/DELETE/DROP PACKAGEADD ... TO PACKAGEREMOVE ... FROM PACKAGEALLOW/DISALLOW PROJECTINSTALL/UNINSTALL PACKAGELIST/ADD/REMOVE ACCOUNTPROVIDERSSET LABLE ...
那么,这些能在 odps console 上运行的命令,该如何使用 odps sdk 运行呢?它们是与 sql 一样通过创建 instance 的方式来运行吗?
不可以,这些命令不是 sql , 不可以通过 sql task 来运行。
需要使用接口 SecurityManager.runQuery()
来运行。详细 javadoc 戳这里
SecurityManager
类在 odps-sdk-core 中,因此在使用时请添加依赖:
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>0.23.3-public</version></dependency>
下面通过一个例子来演示如何通过 odps java sdk 来设置表 test_label
列的访问级别为 2,也就是运行命令SET LABEL 2 TO TABLE test_label(key, value);
。
import com.aliyun.odps.Column;import com.aliyun.odps.Odps;import com.aliyun.odps.OdpsException;import com.aliyun.odps.OdpsType;import com.aliyun.odps.TableSchema;import com.aliyun.odps.account.Account;import com.aliyun.odps.account.AliyunAccount;import com.aliyun.odps.security.SecurityManager;public class test { public static void main(String [] args) throws OdpsException { try { // init odps Account account = new AliyunAccount("<your_accessid>", "<your_accesskey>"); Odps odps = new Odps(account); odps.setEndpoint("http://service-corp.odps.aliyun-inc.com/api"); odps.setDefaultProject("<your_project>"); // create test table // if u already have a table, skip this TableSchema schema = new TableSchema(); schema.addColumn(new Column("key", OdpsType.STRING)); schema.addColumn(new Column("value", OdpsType.BIGINT)); odps.tables().create("test_label", schema); // set label 2 to table columns SecurityManager securityManager = odps.projects().get().getSecurityManager(); String res = securityManager.runQuery("SET LABEL 2 TO TABLE test_label(key, value);", false); System.out.println(res); } catch (OdpsException e) { e.printStackTrace(); } }}
运行结果:
程序运行完成后,在 odps console 中运行 `desc test_lable;` 命令,可以看到 set label 已经生效了。
其他安全相关的命令,都可以这样子通过 odps sdk 来运行呢,快来试试吧!
欢迎加入MaxCompute钉钉群讨论
原文链接:
0 0
- 使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
- MaxCompute(原ODPS)使用总结-初级篇
- MaxCompute(原ODPS) 事件(Event)机制
- MaxCompute(原ODPS) MapReduce常见问题解答
- MaxCompute(原ODPS)任务优化之列裁剪
- MaxCompute(原ODPS) 脑图 - 常用知识总结
- MaxCompute( 原ODPS)下的表分区解释
- 5分钟学会使用DataHub接入实时数据到MaxCompute(原ODPS)
- 从MapReduce的执行来看如何优化MaxCompute(原ODPS) SQL
- Odps(MaxCompute)使用时一些问题
- 阿里云ODPS(现名MaxCompute,原名ODPS)介绍
- (odps)maxcompute 日志操作学习
- 【大数据干货】数据进入阿里云数加-大数据计算服务MaxCompute(原ODPS)的N种方式
- MaxCompute 2.0—从ODPS到MaxCompute
- MaxCompute 2.0—从ODPS到MaxCompute
- odps命令
- MaxCompute数据安全机制
- 常用ODPS命令
- 右值引用
- LoadRunner性能测试结果样例分析
- 用java实现简单快速的webservice客户端/数据采集器(支持soap1.1和soap1.2标准,支持utf-8编码)
- Linphone 查看国家码
- 生物信息(bioinformation)学名词解释
- 使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
- 以后没悬念玩儿了!大数据预测奥斯卡获奖准确性达88%
- vc添加库
- Spring AOP AspectJ切入点语法详解,execution,within,this.......
- 如何查找android项目对应模块的手机源码位置
- 创建和销毁对象
- Mybatis数据源与连接池
- java 中 阻塞队列 非阻塞队列 和普通队列的区别是什么?
- 云数据,大计算—海量日志数据分析与应用