すべてのプロダクト
Search
ドキュメントセンター

Data Management:HTTPS 経由でのインスタンスへのアクセス

最終更新日:Jun 21, 2026

このトピックでは、セキュアアクセスプロキシを使用して HTTPS 経由でインスタンスにアクセスする方法について説明します。

前提条件

  • インスタンスに対してセキュアアクセスプロキシが有効化されていること。

    説明

    セキュアアクセスプロキシが有効になっているインスタンスは、[Security and Specifications] > [Secure Access Proxy] ページの [Created] タブで確認できます。この機能を有効にする方法については、「セキュアアクセスプロキシの有効化」をご参照ください。

  • セキュアアクセスプロキシを使用する権限が付与されていること。

    説明

    インスタンスに対する自身の権限ステータスは、セキュアアクセスプロキシの詳細ページで確認してください。権限がない場合は、「セキュアアクセスプロキシ権限の申請」をご参照ください。

注意事項

セキュアアクセスプロキシとセキュアコラボレーションの両機能が有効になっているインスタンスには、セキュリティルールが適用されます。1回のクエリで返される行数は最大 3,000 行に制限することを推奨します。クエリが返す行数が多すぎると、Data Management Service (DMS) は安定性を保証できません。

説明
  • セキュリティルールの制限を回避するには、DMS コンソールのエンドポイントを使用してデータベースにアクセスするか、DMS のテクニカルサポートに連絡して特定のシナリオの評価を依頼してください。

  • セキュアコラボレーション機能を使用しないインスタンスでは、返される最大行数を設定できません。デフォルトの制限は 3,000 行です。

リクエストパラメーター

パラメーター

説明

必須

メソッド

accessId

AccessKey ID。

はい

このパラメーターは、以下のいずれかの方法で渡すことができます。

  • クエリパラメーターとして。

    例: ?accessId=<YOUR_ACCESSKEY_ID>

  • ヘッダーパラメーターとして。

    例: accessId: <YOUR_ACCESSKEY_ID>

accessSecret

AccessKey Secret。

はい

このパラメーターは、以下のいずれかの方法で渡すことができます。

  • クエリパラメーターとして。

    例: ?accessSecret=<YOUR_ACCESSKEY_SECRET>

  • ヘッダーパラメーターとして。

    例: accessSecret: <YOUR_ACCESSKEY_SECRET>

schema

データベース名。

いいえ

このパラメーターは、以下のいずれかの方法で渡すことができます。

  • URL パスパラメーターとして。

    例: /server/<YOUR_DATABASE_NAME>

  • ボディパラメーターとして。

    例: { "schema": "<YOUR_DATABASE_NAME>" }

sql

実行する SQL ステートメント。

はい

このパラメーターは、以下のいずれかの方法で渡すことができます。

  • クエリパラメーターとして。

  • ボディパラメーターとして。

    プレーンテキスト形式: <YOUR_SQL_STATEMENT>

    JSON フォーマット: { "sql": "<YOUR_SQL_STATEMENT>" }

レスポンス形式

HTTPS 経由でインスタンスにアクセスすると、レスポンスは JSON フォーマットで返されます。

JSON オブジェクトは以下の構造を持ちます。

フィールド

タイプ

説明

columnMetas

Array

列のメタデータのリスト。

columnName

String

列名。

columnLabel

String

列ラベル。SQL ステートメントの AS の後に指定されたエイリアスに対応します。エイリアスが使用されていない場合、この値は columnName と同じです。

columnTypeName

String

列のデータ型。たとえば、VARCHARBIGINT などです。

precision

Integer

特定のデータ型の精度。たとえば、VARCHAR(32) の場合、精度は 32 です。

scale

Integer

浮動小数点データ型のスケール。小数点以下の桁数を示します。たとえば、DECIMAL(10,2) の場合、スケールは 2 です。

nullable

Boolean

列が null 値を含むことができるかどうかを示します。true は null 可、false は null 不可を意味します。

autoIncrement

Boolean

列が自動インクリメントであるかどうかを示します。true は自動インクリメント列、false はそうでないことを意味します。

tableName

String

列を含むテーブルの名前。

msg

String

リクエストが失敗した場合に返されるエラーメッセージ。

updateCount

Integer

データ操作言語 (DML) ステートメントによって影響を受けたレコード数。

requestId

String

リクエスト ID。問題が発生した場合、トラブルシューティングにこの ID を使用します。

rowCount

Integer

クエリによって返されたレコード数。

rows

Array

クエリによって返されたレコードのリスト。配列の各要素は、List<Map> のような構造で、1行のデータを表します。

success

Boolean

リクエストが成功したかどうかを示します。true は成功、false は失敗を意味します。

以下はレスポンスのサンプルです。

  • クエリの成功

    {
      "columnMetas": [
        {
          "columnName":"column1",
          "columnLabel":"column1",
          "columnTypeName":"varchar",
          "precision":10,
          "scale":2,
          "nullable":true,
          "autoIncrement":true,
          "tableName":"table1"
        },
        {
          "columnName":"column2",
          "columnLabel":"column2",
          "columnTypeName":"varchar",
          "precision":10,
          "scale":2,
          "nullable":true,
          "autoIncrement":true,
          "tableName":"table1"
        } 
      ],
      "updateCount": 0,
      "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi",
      "rowCount": 1,
      "rows": [
        {
          "column1": 1,
          "column2": "xxxx"
        }
      ],
      "success": true
    }
  • 更新の成功

    {
      "updateCount": 0,
      "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi",
      "success": true
    }
  • リクエストの失敗

    {
      "message": "AccessKey ID is required.",
      "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi",
      "success": false
    }

コマンドライン、SQL クライアント、またはアプリケーションコードを使用して、セキュアアクセスプロキシが有効になっているインスタンスにアクセスできます。

以下の例では、エンドポイントは dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com、データベース名は database、AccessKey ID は user、AccessKey Secret は pwd、SQL コマンドは SHOW DATABASES とします。

  • curl コマンドの使用

    # GET リクエスト
    curl 'https:///server/?accessId=&accessSecret=&sql='
    # GET リクエストの例
    curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW%20DATABASES'
    # POST リクエスト
    curl 'https:///server/' -H 'accessId:' -H 'accessSecret:' -H 'Content-Type:text/plain' -d ''
    # POST リクエストの例
    curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database' -H 'accessId:user' -H 'accessSecret:pwd' -H 'Content-Type:text/plain' -d 'SHOW DATABASES'
  • Python プログラムの使用

    説明

    この例では Python 2 を使用します。

    GET リクエスト:

    import requests
    url = "https:///server/?accessId=&accessSecret=&sql="
    print requests.get(url).text

    GET リクエストの例:

    import requests
    url = "https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW DATABASES"
    print requests.get(url).text

    POST リクエスト:

    import requests
    url = "https:///server/"
    headers = {
        "Content-Type": "text/plain;charset=utf-8",
        "accessId": "",
        "accessSecret": ""
    }
    print requests.post(url, headers=headers, data='').text

    POST リクエストの例:

    import requests
    url = "https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database"
    headers = {
        "Content-Type": "text/plain;charset=utf-8",
        "accessId": "user",
        "accessSecret": "pwd"
    }
    print requests.post(url, headers=headers, data='SHOW DATABASES').text
  • Node.js プログラムの使用

    GET リクエスト:

    const https = require("https");
    https.get("https:///server/?accessId=&accessSecret=&sql=SHOW DATABASES", resp => {
        // データを取得
        resp.on("data", data => {
            // データを JSON としてパースしてログに出力
            console.log(JSON.parse(data));
        });
    });

    GET リクエストの例:

    const https = require("https");
    https.get("https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW DATABASES", resp => {
        // データを取得
        resp.on("data", data => {
            // データを JSON としてパースしてログに出力
            console.log(JSON.parse(data));
        });
    });

    POST リクエスト:

    const https = require("https");
    var req = https.request({
        hostname: '',
        port: 443,
        path: '/server/',
        method: 'POST',
        headers: {
            'Content-Type': 'text/plain; charset=UTF-8',
            accessId: '',
            accessSecret: ''
        }
    }, resp => {
        // データを取得
        resp.on("data", data => {
            // データを JSON としてパースしてログに出力
            console.log(JSON.parse(data));
        });
    });
    // SQL ステートメントを書き込む
    req.write("");
    // リクエストを終了
    req.end();

    POST リクエストの例:

    const https = require("https");
    var req = https.request({
        hostname: 'dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com',
        port: 443,
        path: '/server/database',
        method: 'POST',
        headers: {
            'Content-Type': 'text/plain; charset=UTF-8',
            accessId: 'user',
            accessSecret: 'pwd'
        }
    }, resp => {
        // データを取得
        resp.on("data", data => {
            // データを JSON としてパースしてログに出力
            console.log(JSON.parse(data));
        });
    });
    // SQL ステートメントを書き込む
    req.write("SHOW DATABASES");
    // リクエストを終了
    req.end();
  • Postman クライアントの使用

    GET リクエスト: Postman で、URL https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database に GET リクエストを送信します。URL パラメーターで、accessId をご自身の AccessKey ID に、accessSecret をご自身の AccessKey Secret に、sql を実行する SQL ステートメント (例: SHOW DATABASES) に設定します。[Send] をクリックします。

    POST リクエスト: Postman で、リクエストメソッドを POST に、URL を https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database に設定します。[Headers] タブで、Content-Typetext/plain に、accessId をご自身の AccessKey ID に、accessSecret をご自身の AccessKey Secret に設定します。[Body] タブで [raw] を選択し、[Text] を選び、テキストエリアに SQL ステートメント (例: SHOW DATABASES) を入力します。[Send] をクリックします。