Updated on 2023-10-18 GMT+08:00

Creating a Database Account

Function

This API is used to create a database account for a GaussDB(for MySQL) instance. Before calling this API:

URI

POST /v3/{project_id}/instances/{instance_id}/db-users

Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID of a tenant in a region.

To obtain this value, see Obtaining a Project ID.

instance_id

Yes

String

Instance ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token.

If the following response body is returned for calling the API used to obtain a user token, the request is successful.

After the request is processed, the value of X-Subject-Token in the message header is the token value.

X-Language

No

String

Request language type. The default value is en-us.

Value:

  • en-us
  • zh-cn
Table 3 Request body parameter

Parameter

Mandatory

Type

Description

users

Yes

Array of CreateDatabaseUserList objects

List of database users. The list contains up to 50 database users.

Table 4 CreateDatabaseUserList

Parameter

Mandatory

Type

Description

name

Yes

String

Database username. The value can contain 1 to 32 characters, including letters, digits, and underscores (_).

comment

No

String

Database remarks. The value can consist of up to 512 characters, and cannot contain the carriage return characters or special characters (!<"='>&).

This field is only suitable for instances 2.0.13.0 or later.

password

Yes

String

Password of the database user. The value cannot be empty and must consist of 8 to 32 characters and contain at least three types of the following: uppercase letters, lowercase letters, digits, and special characters (~!@#$%^*-_=+?,()&).

You are advised to enter a strong password to improve security and prevent security risks such as brute force cracking.

hosts

No

Array of strings

Host IP address. The default value is %, indicating that all IP addresses are allowed to access your GaussDB(for MySQL) instance. If its value is 10.10.10. %, all 10.10.10.X IP addresses can access your GaussDB(for MySQL) instance. You can add up to 50 IP addresses and separate them with commas (,), for example, 192.168.0.1,172.16.213.9 (no spaces before and after the comma).

databases

No

Array of CreateDatabaseList objects

List of the databases. The list contains up to 50 databases. When you create a database user, you can authorize the permissions of databases in the list to the user. If there is no database in the list, you can invoke an API to authorize database permissions to the database user.

Table 5 CreateDatabaseList

Parameter

Mandatory

Type

Description

name

Yes

String

Database name.

readonly

Yes

Boolean

Whether the permission is read-only.

Value:

  • true: read-only
  • false: read/write

Response Parameters

Status code: 201

Table 6 Response body parameters

Parameter

Type

Description

job_id

String

ID of the task for creating a database account.

Status code: 400

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Request

Creating a database user with the read/write permission (The host IP address is 127.0.0.1.)

POST https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/a23fb62bd61e4e9e9636fd2225f395bein07/db-users
{
  "users" : [ {
    "name" : "gaussdb_mysql_user1",
    "password" : "Rds_1234",
    "hosts" : [ "127.0.0.1" ],
    "databases" : [ {
      "name" : "test",
      "readonly" : false
    } ]
  } ]
}

Example Response

Status code: 201

Success.

{
  "job_id" : "dff1d289-4d03-4942-8b9f-463ea07c000d"
}

Status Code

For details, see Status Codes.

Error Code

For details, see Error Codes.