博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
阅读量:6412 次
发布时间:2019-06-23

本文共 2338 字,大约阅读时间需要 7 分钟。

hot3.png

摘要: 使用 odps console 的同学,可能都使用过 odps 安全相关的命令。

转自zhenhong

 

使用 MaxCompute console 的同学,可能都使用过 odps 安全相关的命令。官方文档上有详细的 odps ,并给出了。

简而言之,、以及都属于 odps 安全命令相关的范畴。

再直白一点,以下列关键字开头的命令,都是 odps 安全相关操作命令:

 

GRANT/REVOKE ... SHOW GRANTS/ACL/PACKAGE/LABEL/ROLE/PRINCIPALS SHOW PRIV/PRIVILEGES LIST/ADD/REOVE USERS/ROLES/TRUSTEDPROJECTS DROP/CREATE ROLE CLEAR EXPIRED GRANTS DESC/DESCRIBE ROLE/PACKAGE CREATE/DELETE/DROP PACKAGE ADD ... TO PACKAGE REMOVE ... FROM PACKAGE ALLOW/DISALLOW PROJECT INSTALL/UNINSTALL PACKAGE LIST/ADD/REMOVE ACCOUNTPROVIDERS SET LABLE ...

 

那么,这些能在 odps console 上运行的命令,该如何使用 odps sdk 运行呢?它们是与 sql 一样通过创建 instance 的方式来运行吗?

不可以,这些命令不是 sql , 不可以通过 sql task 来运行。

需要使用接口 SecurityManager.runQuery() 来运行。

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(); } } }

运行结果:

2080_100_z1gK8OLNaIvSNu

程序运行完成后,在 odps console 中运行 `desc test_lable;` 命令,可以看到 set label 已经生效了。

2526_100_f1iVzjOt2RHuhA

 

其他安全相关的命令,都可以这样子通过 odps sdk 来运行呢,快来试试吧!

 

阅读更多干货好文,请关注扫描以下二维码:

4010_100_A1WNA99CrgiGz3

转载于:https://my.oschina.net/u/3735980/blog/1785513

你可能感兴趣的文章
win7 64位下装office报1402的错误的解决方法
查看>>
iPhone开发资源汇总(更新中)
查看>>
PHP+七牛云存储上传图片代码片段
查看>>
【LeetCode】23. Merge k Sorted Lists
查看>>
端口扫描器——ZenmapKail Linux渗透测
查看>>
***phpredis扩展安装总结
查看>>
JAVASCRIPT实现网页版:俄罗斯方块
查看>>
Delphi IOS 蓝牙锁屏后台运行
查看>>
C#回调实现的一般过程
查看>>
mssql sql高效关联子查询的update 批量更新
查看>>
Atitit.病毒木马程序的感染 传播扩散 原理
查看>>
Android Studio Gradle
查看>>
jquery-autocomplete 参数说明
查看>>
Windwos下常用DOS命令
查看>>
【iCore3 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
查看>>
onethink加密解密函数
查看>>
重写 Ext.toolbar.Paging 扩展功能
查看>>
冒泡排序
查看>>
linux进程地址空间--vma的基本操作【转】
查看>>
李洪强iOS开发之提交AppStory时候遇到的坑
查看>>