千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关怎么使用MaxCompute Java SDK运行安全相关命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用MaxCo
千家信息网最后更新 2025年12月03日怎么使用MaxCompute Java SDK运行安全相关命令

这篇文章将为大家详细讲解有关怎么使用MaxCompute Java SDK运行安全相关命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

使用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() 来运行 。 详细 SDK Java Doc 戳这里

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


运行结果:

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

关于怎么使用MaxCompute Java SDK运行安全相关命令就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0