博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用MaxCompute Java SDK运行安全相关命令
阅读量:6213 次
发布时间:2019-06-21

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

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute
,并给出了
简而言之,
以及
都属于 MaxCompute 安全命令相关的范畴。
再直白一点,以下列关键字开头的命令,都是MaxCompute安全相关操作命令:
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  ...
那么,这些能在 
MaxCompute Console
 上运行的命令,该如何使用 
MaxCompute Java SDK
 运行呢?它们是与 SQL 一样通过创建 instance 的方式来运行吗?
答案:不可以,这些命令不是 SQL , 不可以通过 SQL Task 来运行。
需要使用接口 SecurityManager.runQuery() 来运行
SecurityManager
 类在 odps-sdk-core 中,因此在使用时请添加依赖:
com.aliyun.odps
odps-sdk-core
0.29.11-oversea-public
下面通过一个例子来演示如何通过 
MaxCompute 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("
", "
"); Odps odps = new Odps(account); odps.setEndpoint("http://service-corp.odps.aliyun-inc.com/api"); odps.setDefaultProject("
"); // 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(); } }}
运行结果:
34
程序运行完成后,在 MaxCompute Console 中运行 `desc test_lable;` 命令,可以看到 set label 已经生效了。
DingTalk20161017205014
其他安全相关的命令,都可以这样子通过 MaxCompute Java SDK 来运行呢,快来试试吧!

转载地址:http://xqdja.baihongyu.com/

你可能感兴趣的文章
RHEl 5服务篇—部署Postfix邮件服务(二)配置邮件服务器的收、发信服务
查看>>
AD RMS 自我排错分析篇
查看>>
Kubernetes Deployment滚动更新场景分析
查看>>
多线程 3道题目 一
查看>>
我的友情链接
查看>>
c# 二维数组
查看>>
解决mx:AdvancedDataGrid表格中向上滚动导致数据混乱的非主流方法
查看>>
Buffer Cache内容强制写出到数据文件 alter system flush buffer_cache
查看>>
MicropPython的学习,如何从0到1?
查看>>
DNS(BIND) 服务器主从,实现高效率域名解析
查看>>
PHP 字符串变量
查看>>
Nginx+Lua环境安装
查看>>
Linuxshell快捷键
查看>>
three js相关的文档
查看>>
PHP获取和操作配置文件php.ini的几个函数
查看>>
83.LAMP设置默认主机
查看>>
sql笔记(来自oracle 的scott用户)
查看>>
bash_profile和.bashrc
查看>>
CGI解释
查看>>
matlab-线性代数 det 各阶主子式、余子式、代数余子式
查看>>