使用MaxCompute Java SDK运行安全相关命令

发布时间:2019-11-21 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用MaxCompute Java SDK运行安全相关命令脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute安全指南,并给出了安全相关语句汇总。

简而言之,权限管理、列级别访问控制、项目空间安全配置以及跨项目空间的资分享都属于 MaxCompute 安全命令相关的范畴。

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

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 ...

那么,这些能在 MaxCompute Console 上运行的命令,该如何使用 MaxCompute Java SDK 运行呢?它们是与 SQL 一样通过创建 instance 的方式来运行吗?

答案:不可以,这些命令不是 SQL , 不可以通过 SQL Task 来运行。

需要使用接口 SecurITyManager.runQuery() 来运行。详细 SDK Java Doc 戳这里

SecurityManager 类在 odps-sdk-core 中,因此在使用时请添加依赖:

<dePEndency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.29.11-oversea-public</version>
</dependency>

下面通过一个例子来演示如何通过 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("<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(); }

}
}

运行结果:

使用MaxCompute Java SDK运行安全相关命令

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

使用MaxCompute Java SDK运行安全相关命令

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

脚本宝典总结

以上是脚本宝典为你收集整理的使用MaxCompute Java SDK运行安全相关命令全部内容,希望文章能够帮你解决使用MaxCompute Java SDK运行安全相关命令所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。