首批通过分布式安全可靠测评,为关键业务系统打造
创建数据库用户
更新时间:2023-08-10 11:45:58
功能说明
创建数据库用户。
调用说明
接口约束
调用者需要通过 OCP 应用服务鉴权。
调用者需要具备指定租户的修改权限。
请求路径
POST /api/v2/ob/clusters/{id}/tenants/{tenantId}/users
请求参数
path 参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| id | Integer | 是 | 1 | 集群 ID |
| tenantId | Integer | 是 | 5 | 租户 ID |
body 参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| username | String | 是 | user1 | 用户名 |
| password | String | 是 | ****** | 密码 |
| saveToCredential | Boolean | 否 | true | 是否将用户密码保存到到当前ocp登录用户的密码箱中。 |
| globalPrivileges | ArrayString | 否 | [SELECT, CREATE] | 要授予的全局权限列表 * 对于 MySQL 租户,表示全局权限的列表 * 对于 Oracle 租户,表示系统权限的列表 |
| dbPrivileges | Array | 否 | 要授予的数据库权限列表 说明 仅 MySQL 租户中存在,Oracle 租户无此字段。 | |
| ├─ dbName | String | 是 | db1 | 数据库名 |
| ├─ privileges | StringArray | 是 | [ALTER, INDEX] | 数据库的权限列表 |
| roles | StringArray | 否 | [R1, R2] | 要授予的角色列表 说明 仅 Oracle 租户中存在,MySQL 租户无此字段。 |
返回结果
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Object | 数据库用户,数据库用户数据结构见下表。 |
| successful | Boolean | 请求是否成功。 |
| timestamp | Datetime | 服务端完成请求的时间戳。 |
| duration | Integer | 服务端处理请求的时间(毫秒)。 |
| status | Integer | 符合 HTTP Status 规范的编码。 |
| traceId | String | 请求的 Trace ID,用于排查问题。 |
| server | String | 响应请求的应用服务的地址。 |
数据库用户的数据结构
| 参数 | 类型 | 说明 |
|---|---|---|
| username | String | 用户名 |
| globalPrivileges | StringArray | 全局权限列表: * 对于 MySQL 租户,表示全局权限的列表 * 对于 Oracle 租户,表示系统权限的列表 |
| dbPrivileges | Array | 数据库权限列表 Oracle 租户无此字段 |
| ├─ dbName | String | 数据库名 |
| ├─ privileges | StringArray | 数据库的权限列表 |
| objectPrivileges | Array | 对象权限列表 MySQL 租户无此字段 |
| ├─ dbObject | Object | 数据库对象 |
| ├─├─ objectType | String | 数据库对象类型,取值范围: * TABLE 表 * VIEW 视图 * STORED_PROCEDURE 存储过程 |
| ├─├─ objectName | String | 数据库对象名,即表明、视图名或存储过程名。 |
| ├─├─ schemaName | String | schema 名,一般与用户名相同。 |
| ├─ privileges | StringArray | 对象的权限列表 |
| grantedRoles | String | 用户被授予的角色 说明 仅 Oracle 租户中存在,MySQL 租户无此字段。 |
| isLocked | Bool | 用户是否被锁定 |
| createTime | Datetime | 用户创建时间 |
| connectionStrings | Array | OBProxy与连接串的列表 |
| ├─ connectionStringType | String | 连接串类型,取值范围: * OBPROXY * DIRECT 直连 |
| ├─ obProxyAddress | String | OBProxy 地址 说明 仅当连接串类型为 OBProxy 时有效 |
| ├─ obProxyPort | Integer | OBProxy 端口 说明 仅当连接串类型为 OBProxy 时有效 |
| ├─ connectionString | String | 连接串 |
| accessibleDatabases | StringArray | 可访问的数据库 说明 仅 MySQL 租户中存在,Oracle 租户无此字段。 |
示例
请求示例
在集群 1、租户 1000001 下创建用户 user1。
POST /api/v2/ob/clusters/1/tenants/1000001/users?id=1&tenantId=1000001
{
"username": "user1",
"password": "******",
"globalPrivileges": [
"DELETE",
"SELECT",
"INDEX"
],
"dbPrivileges": [
{
"dbName": "db1",
"privileges": [
"ALTER",
"CREATE",
"SELECT"
]
}
]
}
返回示例
{
"data": {
"createTime": "2021-09-07T15:21:52.664003+08:00",
"dbPrivileges": [
{
"dbName": "db1",
"privileges": [
"SELECT",
"CREATE",
"ALTER"
]
}
],
"globalPrivileges": [
"DELETE",
"SELECT",
"INDEX"
],
"isLocked": false,
"username": "user1"
},
"duration": 413,
"server": "a83ad33525",
"status": 200,
"successful": true,
"timestamp": "2021-09-07T15:21:52.838+08:00",
"traceId": "9f90d133858c41e4"
}