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

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

最終更新日:Mar 25, 2026

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

前提条件

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

    説明

    DMS コンソールで、[セキュリティと仕様] > [セキュアアクセスプロキシ] に移動します。[作成済み] タブで、セキュアアクセスプロキシ が有効になっているインスタンスのリストを表示できます。有効にする必要がある場合は、「セキュアアクセスプロキシの有効化」をご参照ください。

  • セキュアアクセスプロキシ権限付与 を受けていること。

    説明

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

注意事項

セキュアアクセスプロキシ が有効になっている セキュアコラボレーションインスタンス は、セキュリティルールの対象となります。1 回のクエリで返される行数を最大 3,000 行に制限することを推奨します。DMS は、3,000 行を超える行を返すクエリの安定性を保証しません。

説明
  • セキュリティルール の制限をバイパスするには、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]" }

レスポンスフィールド

API は JSON フォーマットでレスポンスを返します。

次の表に、JSON レスポンスオブジェクトのフィールドを示します。

フィールド

説明

columnMetas

配列

各列のメタデータの配列。

columnName

文字列

列の名前。

columnLabel

文字列

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

columnTypeName

文字列

列のデータの型。VARCHARBIGINT など。

precision

整数

列の精度。たとえば、VARCHAR(32) 列の場合、精度は 32 です。

scale

整数

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

nullable

ブール値

列に NULL 値を含めることができるかどうかを示します。true:列は NULL 値を受け入れます。false:列は NULL 値を受け入れません。

autoIncrement

ブール値

列が自動インクリメント列であるかどうかを示します。true:列は自動インクリメントされます。false:されません。

tableName

文字列

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

msg

文字列

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

updateCount

整数

DML ステートメントによって影響を受けた行数。

requestId

文字列

リクエスト ID。この ID はトラブルシューティングのために提供できます。

rowCount

整数

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

rows

配列

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

success

ブール値

リクエストが成功したかどうかを示します。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": [
        {
          "col1": 1,
          "col2": "xxxx"
        }
      ],
      "success": true
    }
  • データ更新の成功

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

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

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

エンドポイントdpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com、データベース名が databaseAccessKey ID (accessId として渡される) が userAccessKey Secret (accessSecret として渡される) が pwd、SQL ステートメントが show databases であると仮定します。

  • cURL コマンドラインの例

    # GET リクエスト
    curl 'https://[your_endpoint]/server/[your_database_name]?accessId=[your_AccessKey_ID]&accessSecret=[your_AccessKey_Secret]&sql=[your_sql_statement]'
    # GET リクエストの例
    curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW%20DATABASES'
    # POST リクエスト
    curl 'https://[your_endpoint]/server/[your_database_name]' -H 'accessId:[your_AccessKey_ID]' -H 'accessSecret:[your_AccessKey_Secret]' -H 'Content-Type:text/plain' -d '[your_sql_statement]'
    # 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://[your_endpoint]/server/[your_database_name]?accessId=[your_AccessKey_ID]&accessSecret=[your_AccessKey_Secret]&sql=[your_sql_statement]"
    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://[your_endpoint]/server/[your_database_name]"
    headers = {
        "Content-Type": "text/plain;charset=utf-8",
        "accessId": "[your_AccessKey_ID]",
        "accessSecret": "[your_AccessKey_Secret]"
    }
    print requests.post(url, headers=headers, data='[your_sql_statement]').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://[your_endpoint]/server/[your_database_name]?accessId=[your_AccessKey_ID]&accessSecret=[your_AccessKey_Secret]&sql=SHOW DATABASES", resp => {
        resp.on("data", data => {
            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 => {
            console.log(JSON.parse(data));
        });
    });

    POST リクエスト:

    const https = require("https");
    
    var req = https.request({
        hostname: '[your_endpoint]',
        port: 443,
        path: '/server/[your_database_name]',
        method: 'POST',
        headers: {
            'Content-Type': 'text/plain; charset=UTF-8',
            accessId: '[your_AccessKey_ID]',
            accessSecret: '[your_AccessKey_Secret]'
        }
    }, resp => {
        resp.on("data", data => {
            console.log(JSON.parse(data));
        });
    });
    req.write("[your_sql_statement]");
    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 => {
            console.log(JSON.parse(data));
        });
    });
    req.write("SHOW DATABASES");
    req.end();
  • Postman の例

    GET リクエスト:postmanget

    POST リクエスト:postmanpost