修改数据源
更新 NineData 中已录入数据源的连接信息。可修改数据源的名称、账号、密码、连接地址、端口、所属环境等信息。
请求地址:/openapi/v1/datasource/update
请求方法:POST
请求参数
| 参数 | 类型 | 是否必选 | 说明 | 示例 |
|---|---|---|---|---|
| datasourceId | String | 是 | 数据源 ID。可通过调用获取数据源列表接口查询。 | ds-d92lj22cb03k |
| name | String | 否 | 修改数据源的名称。 | Datasource-updated |
| username | String | 否 | 修改数据源登录账号;不传表示不修改。传值时需满足创建接口的账号条件。 | root |
| password | String | 否 | 修改数据源登录密码;不传表示不修改。传值时需满足 username 的条件。 | root |
| host | String | 否 | 修改数据源连接地址。MongoDB 副本集或分片集群传入 host1:port1,host2:port2 格式的拼接字符串。 | 127.0.0.1 |
| port | Integer | 否 | 修改数据源端口。传入 null 表示不更新该字段;MongoDB 副本集或分片集群模式不填。 | 3306 |
| envId | String | 否 | 修改数据源所属环境。您可以调用查询环境信息接口获取 envId。 | aliyun-cn-hangzhou |
| regionId | String | 否 | 修改数据源所属地域。 | cn-hangzhou |
| networkType | String | 否 | 修改连接方式。取值:public、gateway、ssh、private。 | public |
| masterName | String | 否 | 修改主节点名称。 | master-1 |
| hostAndPorts | String | 否 | 修改逗号分隔的多节点 host:port 组合。 | host1:port1,host2:port2 |
| instanceId | String | 否 | 修改云实例 ID。 | instance-001 |
| instanceType | String | 否 | 修改实例类型。 | RDS |
| cloudInstanceType | String | 否 | 修改云实例接入类型。 | instance |
| vendorRegionId | String | 否 | 修改云厂商地域 ID。 | cn-hangzhou |
| serverVersion | String | 否 | 修改数据库服务版本。 | 8.0 |
| gatewayId | String | 否 | 修改网关 ID。 | gateway-001 |
| tunnelId | String | 否 | 修改私网连接 ID。 | tunnel-001 |
| accessId | String | 否 | 修改云厂商访问凭证 ID。 | access-001 |
| env | String | 否 | 修改环境标识。 | product |
| sshConfig | Object | 否 | 修改 SSH 连接配置。 | {} |
| extraConfig | Object | 否 | 数据源专属配置。传入的字段会增量合并到已有配置中,仅传入需要变更的字段即可。 | {"readPreference":"primary"} |
| sslConfig | Object | 否 | SSL 加密传输配置。不传表示不启用;修改接口不校验数据源类型。 | {"securityConfig":"PREFERRED"} |
| multiTag | String | 否 | 多活标记。 | active |
MongoDB 更新说明
extraConfig中的配置会增量合并到已有配置中,未传入的字段保持不变。- 当
mongoDBDeploymentType传入非法值时,接口会校验并拒绝请求。 - 更新
host时,接口会对每个节点进行 DNS 可解析性校验。 - 修改 Redis Sentinel 或 Redis Cluster 数据源的
host时,接口会同步更新hostAndPorts;也可以直接传入hostAndPorts。 - 更新 DataHub 数据源时,接口不会强制使用
accessId对应的凭证覆盖已有账号密码。
SSL 配置参数
仅 MySQL、SQLServer、PostgreSQL 数据源支持传入 sslConfig。不同数据源类型支持的字段不同。
| 参数 | 类型 | 是否必选 | 适用数据源 | 说明 | 示例 |
|---|---|---|---|---|---|
| securityConfig | String | 否 | MySQL、PostgreSQL | SSL 安全模式。MySQL 取值:REQUIRED、PREFERRED;PostgreSQL 取值:Prefer、Require、Verify-CA、Verify-Full。 | PREFERRED |
| sslCipher | String | 否 | MySQL | SSL 加密套件。 | TLS_AES_256_GCM_SHA384 |
| sslCA | String | 否 | MySQL、SQLServer、PostgreSQL | CA 证书内容。 | -----BEGIN CERTIFICATE----- |
| sslCAFileName | String | 否 | MySQL、SQLServer、PostgreSQL | CA 证书文件名。 | ca.pem |
| sslClientCert | String | 否 | MySQL、PostgreSQL | 客户端证书内容。 | -----BEGIN CERTIFICATE----- |
| sslClientCertFileName | String | 否 | MySQL、PostgreSQL | 客户端证书文件名。 | client-cert.pem |
| sslClientKey | String | 否 | MySQL、PostgreSQL | 客户端私钥内容。 | -----BEGIN PRIVATE KEY----- |
| sslClientKeyFileName | String | 否 | MySQL、PostgreSQL | 客户端私钥文件名。 | client-key.pem |
| sslIndentify | Boolean | 否 | MySQL | 是否校验服务器身份。字段名请按接口使用 sslIndentify。 | false |
| hostNameInCertificate | String | 否 | SQLServer | 服务器证书中的主机名。 | db.example.com |
| trustServerCertificate | Boolean | 否 | SQLServer | 是否信任服务器证书。 | false |
请求示例
MongoDB 更新读取偏好:
{
"datasourceId": "ds-d92lj22cb03k",
"name": "renamed-mongo",
"extraConfig": {
"readPreference": "primary"
}
}
MySQL 更新 SSL 配置和多活标记:
{
"datasourceId": "ds-d92lj22cb03k",
"sslConfig": {
"securityConfig": "PREFERRED",
"sslIndentify": false
},
"multiTag": "active"
}
返回参数
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
| success | Bool | 接口调用是否成功。返回值:true、false。 | true |
| requestId | String | 请求 ID。 | Iq0s6SPI-HNKKaLTnINGt1JEdOLc7DSH |
| data | Object | 数据源更新详情,包含更新成功与否(success)信息。返回值:true、false。 | { "success": true } |
调用成功示例
{
"success": true,
"requestId": "Iq0s6SPI-HNKKaLTnINGt1JEdOLc7DSH",
"data": {
"success": true
}
}