You can create user accounts for a certain database or create universal users with access to all databases within a subscription:

  • To create a user assigned to a particular database, specify the user login name, password and the ID of the database where you want to create a user account. You can add multiple users to the database in a single packet.
  • To create a universal user, specify the user login name, password, ID of the database server and the ID of the subscription.

Request Packet Structure

A request XML packet creating database user account for the database includes the add-db-user operation node:

<packet>
<database>
   <add-db-user>
   ...
   </add-db-user>
</database>
</packet>

The add-db-user node is presented by type DatabaseAddDBUserInputType (database_input.xsd), and its graphical representation is as follows:

image 72559

Note: The interactive schema navigator for all request packets is available here: http://plesk.github.io/api-schemas/1.6.8.0/agent_input.svg.

  • The db-id node is required. It specifies the ID of the database where a new user will be created. Data type: integer.
  • The webspace-id node is required. It specifies ID of the subscription where a new database user will be created. Used to create a universal user with access to all databases within the specified subscription. Data type: integer.
  • The db-server-id node is required. It specifies ID of the database server to which a new user will be assigned. Used to create a universal user with access to all databases within the specified database server. Data type: integer.
  • The login node is required. It specifies login name of the database user. Data type: string.
  • The password node is required. It specifies the password of the database user. Data type: string (length should be more than five digits).
  • The password-type node is optional. Specifies if it is plain or encrypted password. Data type: string. Allowed values: plain | crypt.
  • The acl node is optional. It specifies the hosts from which a database user is allowed to connect to a database. Data type: DatabaseUserAclType, which consists of host elements of the string data type.
  • The allow-access-from node is optional. It specifies the IP addresses from which access to a database is allowed. Data type: DatabaseUserRemoteAccessRulesType, which consists of ip-address elements of the string data type.
  • The role node is optional. Specifies the database user role. Data type: string. Allowed values: readWrite, readOnly, writeOnly.

Remarks

You can add multiple users to database in a single packet. Add as many add-db-user operations to the packet as the number of different users you want to create. You can also add multiple users to multiple databases in a single packet.

<database>
   <add-default-user>
   ...
   </add-default-user>
   ...
   <add-default-user>
   ...
   </add-default-user>

</database>

Note: When creating request packets, put nodes and elements in the order they follow in the packet structure.

Response Packet Structure

The add-db-user node of the output XML packet is presented by type DatabaseAddDBUserOutputType (database_output.xsd) and structured as follows:

image 37566

Note: The interactive schema navigator for all response packets is available here: http://plesk.github.io/api-schemas/1.6.8.0/agent_output.svg.

  • The result node is required. It wraps the response retrieved from the server. Data type: resultType (common.xsd).
  • The status node is required. It specifies the execution status of the add-db–user operation. Data type: string. Allowed values: ok | error.
  • The errcode node is optional. Is returns the error code if the add-db–user operation fails. Data type: integer.
  • The errtext node is optional. It returns the error message if the add-db–user operation fails. Data type: string.
  • The id node is required. It specifies the database user ID. Data type: integer.

Samples

Creating a database user

This request packet creates user MyUser on the database with ID 55.

<packet>
<database>
   <add-db-user>
      <db-id>55</db-id>
      <login>MyUser</login>
      <password>hello</password>
      <role>writeOnly</role>
   </add-db-user>
</database>
</packet>

Reponse:

<packet>
<database>
   <add-db-user>
      <result>
         <status>ok</status>
         <id>132</id>
      </result>
   </add-db-user>
</database>
</packet>

If the database was not found, the response looks as follows:

<packet>
<database>
   <add-db-user>
      <result>
         <status>error</status>
         <errcode>1015</errcode>
         <errtext>Database not found</errtext>
      </result>
   </add-db-user>
</database>
</packet>

If the login name is already used by another user account on this database, the response looks as follows:

<packet>
<database>
   <add-db-user>
      <result>
         <status>error</status>
         <errcode>1007</errcode>
         <errtext>User already exists</errtext>
      </result>
   </add-db-user>
</database>
</packet>

Creating multiple database users

This packet creates user MyUser on the databases with ID 55 and ID 57.

<packet>
<database>
   <add-db-user>
      <db-id>55</db-id>
      <login>MyUser</login>
      <password>hello</password>
   </add-db-user>

   <add-db-user>
      <db-id>55</db-id>
      <login>My2User</login>
      <password>123456</password>
   </add-db-user>

</database>
</packet>

Reponse (if the first operation succeeded and the database with ID=57 was not found):

<packet>
<database>
   <add-db-user>
      <result>
         <status>ok</status>
         <id>132</id>
      </result>
   </add-db-user>

   <add-db-user>
      <result>
         <status>error</status>
         <errcode>1015</errcode>
         <errtext>Database not found</errtext>
      </result>
   </add-db-user>

</database>
</packet>