Topik ini menjelaskan cara mengakses instans database melalui HTTPS setelah fitur proxy akses aman diaktifkan untuk instans tersebut.
Prasyarat
Fitur proxy akses aman telah diaktifkan untuk instans database.
CatatanUntuk memeriksa apakah fitur proxy akses aman telah diaktifkan untuk sebuah instans database, ikuti langkah-langkah berikut: Masuk ke konsol Data Management (DMS). Di bilah navigasi atas, pilih . Pada tab Dibuat di halaman Daftar Proxy, instans dengan fitur proxy akses aman yang diaktifkan akan ditampilkan. Untuk informasi lebih lanjut tentang cara mengaktifkan fitur ini, lihat Aktifkan fitur proxy akses aman.
Anda memiliki otorisasi untuk mengakses instans database menggunakan titik akhir proxy.
CatatanDi halaman Detail instans database, periksa apakah Anda adalah pengguna yang berwenang dari instans tersebut. Jika tidak, ajukan permintaan izin untuk menggunakan titik akhir proxy guna mengakses instans database. Untuk informasi lebih lanjut, lihat Ajukan izin untuk mengakses instans database menggunakan titik akhir proxy.
Catatan Penggunaan
Jika instans database dikelola dalam mode Kolaborasi Keamanan, maka instans tersebut dipengaruhi oleh aturan keamanan. Maksimal 100.000 baris dapat dikembalikan untuk setiap query.
Jika Anda tidak ingin instans database dipengaruhi oleh aturan keamanan, akses instans database menggunakan alamat koneksi yang disediakan oleh konsol database, atau hubungi dukungan teknis DMS untuk mengevaluasi skenario tertentu.
Jika instans database tidak dikelola dalam mode Kolaborasi Keamanan, Anda tidak dapat menyesuaikan jumlah maksimum baris yang dikembalikan per query. Secara default, jumlah maksimum baris yang dapat dikembalikan untuk setiap query adalah 3.000.
Parameter Permintaan
Parameter | Deskripsi | Diperlukan | Metode Penetapan Nilai |
accessId | AccessID | Ya | Anda dapat melewatkan nilai parameter ini dengan salah satu metode berikut:
|
accessSecret | AccessSecret | Ya | Anda dapat melewatkan nilai parameter ini dengan salah satu metode berikut:
|
schema | Nama database | Tidak | Anda dapat melewatkan nilai parameter ini dengan salah satu metode berikut:
|
sql | Pernyataan SQL | Ya | Anda dapat melewatkan nilai parameter ini dengan salah satu metode berikut:
|
Parameter Respons
Jika Anda mengakses instans melalui HTTPS, data dikembalikan dalam format JSON.
Tabel berikut menjelaskan parameter respons dalam format JSON.
Parameter | Tipe | Deskripsi |
columnMetas | Array | Metadata kolom. |
columnName | String | Nama kolom. |
columnLabel | String | Label untuk kolom, yang ditentukan dalam klausa AS dalam pernyataan SQL. Jika klausa AS tidak ditentukan, nilai parameter ini sama dengan nilai parameter columnName. |
columnTypeName | String | Tipe data kolom, seperti VARCHAR dan BIGINT. |
precision | Integer | Presisi untuk nilai kolom. Parameter ini dapat ditentukan untuk kolom beberapa tipe data seperti VARCHAR. Contohnya, VARCHAR(32) menunjukkan bahwa presisi untuk nilai adalah 32. |
scale | Integer | Skala untuk nilai kolom. Parameter ini dapat ditentukan untuk kolom tipe data floating-point untuk menunjukkan jumlah digit di sebelah kanan titik desimal dalam suatu nilai. Contohnya, DECIMAL(10,2) menunjukkan bahwa jumlah digit di sebelah kanan titik desimal adalah dua. |
nullable | Boolean | Menunjukkan apakah kolom dapat dibiarkan kosong. Nilai true menunjukkan bahwa kolom dapat dibiarkan kosong. Nilai false menunjukkan bahwa Anda harus menentukan nilai untuk kolom tersebut. |
autoIncrement | Boolean | Menunjukkan apakah nilai kolom bertambah secara otomatis untuk setiap baris baru. Nilai true menunjukkan bahwa kolom adalah kolom penambahan otomatis. Nilai false menunjukkan bahwa kolom bukan kolom penambahan otomatis. |
tableName | String | Nama tabel tempat kolom tersebut berada. |
msg | String | Pesan kesalahan yang dikembalikan jika eksekusi gagal. |
updateCount | Integer | Jumlah entri yang terpengaruh oleh pernyataan DML. |
requestId | String | ID permintaan. Parameter ini dapat membantu mendiagnosis masalah. |
rowCount | Integer | Jumlah entri yang dikembalikan saat Anda melakukan query. |
rows | Array | Entri yang dikembalikan saat Anda melakukan query. Setiap elemen dalam array menunjukkan satu baris data. Struktur data dari tipe data Array sama dengan tipe data List atau Map. |
success | Boolean | Menunjukkan apakah permintaan berhasil. Nilai true menunjukkan bahwa permintaan berhasil. Nilai false menunjukkan bahwa permintaan gagal. |
Contoh respons:
Query data berhasil
{ "columnMetas": [ { "columnName":"kolom1", "columnLabel":"kolom1", "columnTypeName":"varchar", "precision":10, "scale":2, "nullable":true, "autoIncrement":true, "tableName":"tabel1" }, { "columnName":"kolom2", "columnLabel":"kolom2", "columnTypeName":"varchar", "precision":10, "scale":2, "nullable":true, "autoIncrement":true, "tableName":"tabel1" } ], "updateCount": 0, "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "rowCount": 1, "rows": [ { "col1": 1, "col2": "xxxx" } ], "success": true }Pembaruan data berhasil
{ "updateCount": 0, "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "success": true }Kegagalan akses
{ "message": 'AccessID diperlukan.', "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "success": false }
Contoh mengakses instans database yang memiliki fitur proxy akses aman diaktifkan
Anda dapat menggunakan perintah, klien SQL, atau kode program untuk mengakses instans database yang memiliki fitur proxy akses aman diaktifkan.
Sebagai contoh, nama domain instans adalah dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com, nama database yang akan diakses adalah database, ID AccessKey adalah user, Rahasia AccessKey adalah pwd, dan pernyataan SQL yang akan dieksekusi adalah SHOW DATABASES.
Gunakan perintah curl
# Sintaks permintaan GET curl 'https://[Nama domain instans]/server/[Nama database]?accessId=[ID AccessKey]&accessSecret=[Rahasia AccessKey]&sql=[Pernyataan SQL]'# Contoh permintaan GET curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW%20DATABASES'# Sintaks permintaan POST curl 'https://[Nama domain instans]/server/[Nama database]' -H 'accessId:[ID AccessKey]' -H 'accessSecret:[Rahasia AccessKey] -H 'Content-Type:text/plain' -d '[Pernyataan SQL]'# Contoh permintaan 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'Gunakan program Python 2
CatatanDalam contoh ini, program Python 2 digunakan untuk mengakses instans database.
Sintaks permintaan GET
import requests url = "https://[Nama domain instans]/server/[Nama database]?accessId=[ID AccessKey]&accessSecret=[Rahasia AccessKey]&sql=[Pernyataan SQL]" print requests.get(url).textContoh permintaan GET
import requests url = "https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW DATABASES" print requests.get(url).textSintaks permintaan POST
import requests url = "https://[Nama domain instans]/server/[Nama database]" headers = { "Content-Type": "text/plain;charset=utf-8", "accessId": "[ID AccessKey]", "accessSecret": "[Rahasia AccessKey]" } print requests.post(url, headers=headers, data='[Pernyataan SQL]').textContoh permintaan 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').textGunakan program Node.js
Sintaks permintaan GET
const https = require("https"); https.get("https://[Nama domain instans]/server/[nama database]?accessId=[ID AccessKey]&accessSecret=[Rahasia AccessKey]&sql=SHOW DATABASES", resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); });Contoh permintaan 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)); }); });Sintaks permintaan POST
const https = require("https"); var req = https.request({ hostname: '[Nama domain instans]', port: 443, path: '/server/[Nama database]', method: 'POST', headers: { 'Content-Type': 'text/plain; charset=UTF-8', accessId: '[ID AccessKey]', accessSecret: '[Rahasia AccessKey]' } }, resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); }); req.write("[Pernyataan SQL]"); req.end();Contoh permintaan 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();Gunakan klien Postman
Sintaks permintaan GET

Sintaks permintaan POST

