溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用MaxCompute Java SDK運(yùn)行安全相關(guān)命令

發(fā)布時(shí)間:2021-11-10 16:47:39 來源:億速云 閱讀:157 作者:柒染 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)怎么使用MaxCompute Java SDK運(yùn)行安全相關(guān)命令,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

使用MaxCompute Console的同學(xué),可能都使用過MaxCompute安全相關(guān)的命令。官方文檔上有詳細(xì)的MaxCompute 安全指南 ,并給出了安全相關(guān)語句匯總 。

簡而言之, 權(quán)限管理 、 列級別訪問控制 、 項(xiàng)目空間安全配置 以及 跨項(xiàng)目空間的資源分享 都屬于 MaxCompute 安全命令相關(guān)的范疇。

再直白一點(diǎn),以下列關(guān)鍵字開頭的命令,都是MaxCompute安全相關(guān)操作命令:

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  上運(yùn)行的命令,該如何使用 MaxCompute Java SDK  運(yùn)行呢?它們是與 SQL 一樣通過創(chuàng)建 instance 的方式來運(yùn)行嗎?

答案:不可以,這些命令不是 SQL , 不可以通過 SQL Task 來運(yùn)行。

需要使用接口 SecurityManager.runQuery() 來運(yùn)行 。 詳細(xì) SDK Java Doc 戳這里

SecurityManager  類在 odps-sdk-core 中,因此在使用時(shí)請?zhí)砑右蕾嚕?/p>

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

下面通過一個(gè)例子來演示如何通過 MaxCompute Java SDK  來設(shè)置表  test_label  列的訪問級別為 2,也就是運(yùn)行命令

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


運(yùn)行結(jié)果:

怎么使用MaxCompute Java SDK運(yùn)行安全相關(guān)命令

程序運(yùn)行完成后,在 MaxCompute Console 中運(yùn)行 `desc test_lable;` 命令,可以看到 set label 已經(jīng)生效了。

關(guān)于怎么使用MaxCompute Java SDK運(yùn)行安全相關(guān)命令就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI