跳到主要内容

修改数据源

更新 NineData 中已录入数据源的连接信息。可修改数据源的名称、账号、密码、连接地址、端口、所属环境等信息。

请求地址:/openapi/v1/datasource/update

请求方法:POST

请求参数​

参数类型是否必选说明示例
datasourceIdString是数据源 ID。可通过调用获取数据源列表接口查询。ds-d92lj22cb03k
nameString否修改数据源的名称。Datasource-updated
usernameString否修改数据源登录账号;不传表示不修改。传值时需满足创建接口的账号条件。root
passwordString否修改数据源登录密码;不传表示不修改。传值时需满足 username 的条件。root
hostString否修改数据源连接地址。MongoDB 副本集或分片集群传入 host1:port1,host2:port2 格式的拼接字符串。127.0.0.1
portInteger否修改数据源端口。传入 null 表示不更新该字段;MongoDB 副本集或分片集群模式不填。3306
envIdString否修改数据源所属环境。您可以调用查询环境信息接口获取 envId。aliyun-cn-hangzhou
regionIdString否修改数据源所属地域。cn-hangzhou
networkTypeString否修改连接方式。取值:public、gateway、ssh、private。public
masterNameString否修改主节点名称。master-1
hostAndPortsString否修改逗号分隔的多节点 host:port 组合。host1:port1,host2:port2
instanceIdString否修改云实例 ID。instance-001
instanceTypeString否修改实例类型。RDS
cloudInstanceTypeString否修改云实例接入类型。instance
vendorRegionIdString否修改云厂商地域 ID。cn-hangzhou
serverVersionString否修改数据库服务版本。8.0
gatewayIdString否修改网关 ID。gateway-001
tunnelIdString否修改私网连接 ID。tunnel-001
accessIdString否修改云厂商访问凭证 ID。access-001
envString否修改环境标识。product
sshConfigObject否修改 SSH 连接配置。{}
extraConfigObject否数据源专属配置。传入的字段会增量合并到已有配置中,仅传入需要变更的字段即可。{"readPreference":"primary"}
sslConfigObject否SSL 加密传输配置。不传表示不启用;修改接口不校验数据源类型。{"securityConfig":"PREFERRED"}
multiTagString否多活标记。active

MongoDB 更新说明​

  • extraConfig 中的配置会增量合并到已有配置中,未传入的字段保持不变。
  • 当 mongoDBDeploymentType 传入非法值时,接口会校验并拒绝请求。
  • 更新 host 时,接口会对每个节点进行 DNS 可解析性校验。
  • 修改 Redis Sentinel 或 Redis Cluster 数据源的 host 时,接口会同步更新 hostAndPorts;也可以直接传入 hostAndPorts。
  • 更新 DataHub 数据源时,接口不会强制使用 accessId 对应的凭证覆盖已有账号密码。

SSL 配置参数​

仅 MySQL、SQLServer、PostgreSQL 数据源支持传入 sslConfig。不同数据源类型支持的字段不同。

参数类型是否必选适用数据源说明示例
securityConfigString否MySQL、PostgreSQLSSL 安全模式。MySQL 取值:REQUIRED、PREFERRED;PostgreSQL 取值:Prefer、Require、Verify-CA、Verify-Full。PREFERRED
sslCipherString否MySQLSSL 加密套件。TLS_AES_256_GCM_SHA384
sslCAString否MySQL、SQLServer、PostgreSQLCA 证书内容。-----BEGIN CERTIFICATE-----
sslCAFileNameString否MySQL、SQLServer、PostgreSQLCA 证书文件名。ca.pem
sslClientCertString否MySQL、PostgreSQL客户端证书内容。-----BEGIN CERTIFICATE-----
sslClientCertFileNameString否MySQL、PostgreSQL客户端证书文件名。client-cert.pem
sslClientKeyString否MySQL、PostgreSQL客户端私钥内容。-----BEGIN PRIVATE KEY-----
sslClientKeyFileNameString否MySQL、PostgreSQL客户端私钥文件名。client-key.pem
sslIndentifyBoolean否MySQL是否校验服务器身份。字段名请按接口使用 sslIndentify。false
hostNameInCertificateString否SQLServer服务器证书中的主机名。db.example.com
trustServerCertificateBoolean否SQLServer是否信任服务器证书。false

请求示例​

MongoDB 更新读取偏好:

{
"datasourceId": "ds-d92lj22cb03k",
"name": "renamed-mongo",
"extraConfig": {
"readPreference": "primary"
}
}

MySQL 更新 SSL 配置和多活标记:

{
"datasourceId": "ds-d92lj22cb03k",
"sslConfig": {
"securityConfig": "PREFERRED",
"sslIndentify": false
},
"multiTag": "active"
}

返回参数​

参数类型说明示例
successBool接口调用是否成功。返回值:true、false。true
requestIdString请求 ID。Iq0s6SPI-HNKKaLTnINGt1JEdOLc7DSH
dataObject数据源更新详情,包含更新成功与否(success)信息。返回值:true、false。{
"success": true
}

调用成功示例​

{
"success": true,
"requestId": "Iq0s6SPI-HNKKaLTnINGt1JEdOLc7DSH",
"data": {
"success": true
}
}