From 0381bf72d9ae93285277565faadf8ce03cf19eac Mon Sep 17 00:00:00 2001 From: wangdengke2 Date: Wed, 20 Aug 2025 09:11:45 +0000 Subject: [PATCH] das_api Reviewed-by: Wagner, Fabian Co-authored-by: wangdengke2 Co-committed-by: wangdengke2 --- docs/das/umn/das_01_0002.html | 2 +- docs/das/umn/das_01_0012.html | 77 +++++++++++------- docs/das/umn/das_04_0042.html | 20 ++--- docs/das/umn/das_10_0014.html | 9 +- docs/das/umn/en-us_image_0000002369231434.png | Bin 0 -> 42566 bytes 5 files changed, 65 insertions(+), 43 deletions(-) create mode 100644 docs/das/umn/en-us_image_0000002369231434.png diff --git a/docs/das/umn/das_01_0002.html b/docs/das/umn/das_01_0002.html index c936b8c10..afc6c43d6 100644 --- a/docs/das/umn/das_01_0002.html +++ b/docs/das/umn/das_01_0002.html @@ -2,7 +2,7 @@

What Is Data Admin Service?

Data Admin Service (DAS) is a web service that allows you to log in to and perform operations on databases.

-
  • DAS provides a one-stop management platform for cloud database development.
  • DAS manages DB instances on a web console, making work easy, secure, and intelligent.
+
  • DAS provides a one-stop management platform for cloud database development.
  • DAS makes database management user-friendly, secure, and intelligent.
diff --git a/docs/das/umn/das_01_0012.html b/docs/das/umn/das_01_0012.html index 50162a5fc..53f945590 100644 --- a/docs/das/umn/das_01_0012.html +++ b/docs/das/umn/das_01_0012.html @@ -1,7 +1,7 @@

Permissions Management

-

If you need to assign different permissions to different employees in your enterprise to access your DAS resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control for your cloud resources.

+

If you need to assign different permissions to different employees in your enterprise to access your DAS resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control for your resources.

With IAM, you can use your account to create IAM users, and assign permissions to the users to control their access to specific resources. For example, if you need software developers in your enterprise to be able to use DAS but not able to delete DAS resources or perform any high-risk operations, you can create IAM users for the developers and grant them only the permissions required for using DAS resources.

If your account does not require individual IAM users for permissions management, you can skip this section.

DAS Permissions

By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups and attach permissions policies or roles to these groups. Users then inherit permissions from the groups they belong to and can perform specified operations on cloud services.

@@ -9,7 +9,7 @@

You can grant users permissions by using roles and policies.

  • Roles: A type of coarse-grained authorization system that defines permissions related to users responsibilities. Only a limited number of service-level roles are available for authorization. When using roles to grant permissions, you may need to also assign other roles that the permissions depend on. Roles are not ideal for fine-grained authorization and secure access control.
  • Policies: A type of fine-grained authorization system that defines permissions required to perform operations on specific cloud resources under certain conditions. Policies are more flexible than roles, and they can ensure more secure access control. For example, you can grant IAM users only permissions for managing a certain type of database resource.
-

Table 1 lists all the system-defined roles and policies supported by DAS.

+

Table 1 lists all system permissions of DAS.

@@ -23,9 +23,9 @@ - - - - + + + + +
Table 1 DAS system permissions

Policy Name

DAS Administrator

DAS administrator, who has full permissions for DAS.

+

DAS administrator with all permissions for DAS

System-defined role

+

System role

This role depends on the Tenant Guest role.

The DAS Administrator and Tenant Guest roles must be assigned in the same project.

@@ -33,13 +33,22 @@

DAS FullAccess

Full permissions for DAS

+

All permissions for DAS

System-defined policy

+

System policy

None

DAS ReadOnlyAccess

+

Read-only permission for DAS

+

System policy

+

None

+
@@ -48,47 +57,59 @@

By default, users with fine-grained authorization have permissions to view and delete database connections on the Development Tool page on DAS. The instances are the same as those configured for related services.

Table 2 describes the common operations supported by each system-defined policy or role of DAS. Select the policy or role you need based on the following tables.

-
Table 2 Common operations supported by each system-defined policy or role of DAS

Operation

+
- - + - - - + - - - + - - - + - - - + - - - + @@ -161,9 +182,9 @@ - @@ -171,9 +192,9 @@ - diff --git a/docs/das/umn/das_04_0042.html b/docs/das/umn/das_04_0042.html index 6fc6974a0..c14258bc1 100644 --- a/docs/das/umn/das_04_0042.html +++ b/docs/das/umn/das_04_0042.html @@ -11,7 +11,12 @@ - + + + @@ -21,6 +26,8 @@ - - - - - -
Table 2 Common operations and system permissions

Operation

DAS Administrator

+

DAS Administrator

DAS FullAccess

+

DAS FullAccess

+

DAS ReadOnlyAccess

Logging in to a database

+

Logging in to a database

Supported

+

Supported

+

+

x

Adding a database connection

+

Adding a database connection

Supported

+

Supported

+

+

x

Modifying a database connection

+

Modifying a database connection

Supported

+

Supported

+

+

x

Deleting a DB instance connection

+

Deleting a DB instance connection

Supported

+

Supported

+

+

x

Viewing the login list in Development Tool

+

Viewing the login list in Development Tool

Supported

+

Supported

+

+

Operation permissions:

  • All permissions on the account center, billing center, and resource center
  • All permissions on cloud resources owned by the account
-

OBS policies are configured in the Global project.

+

OBS policies are configured in global projects.

System-defined role

+

System role

None

OBS OperateAccess

Operation permissions: Users with this permission can view buckets, obtain basic bucket information, obtain bucket metadata, view objects, upload objects, download objects, delete objects, and obtain object ACLs.

-

Configure the OBS policies globally.

+

OBS policies are configured in global projects.

System-defined policy

+

System policy

None

Import Type

+

Database

+

Select the target database to which the file is to be imported.

+

Import Type

Set Import Type to sql or CSV.

Import a file from your local PC or an OBS bucket.

  • Upload file

    If you select Upload file for File Source, you need to set Attachment Storage and upload the required file.

    To keep your data secure, provide your own OBS bucket to store the file you uploaded. In this way, DAS automatically connects to your OBS bucket for in-memory reading. No data is stored on DAS.

    +

    Select an OBS bucket to store the file. Click Bucket ACL Info to check whether a public OBS bucket is selected.

    +
    • SAFE: The bucket ACL permission set does not contain ALL USERS.
    • WARN: The bucket ACL permission set contains ALL USERS.
    • UNKNOWN: The bucket ACL permission set is unknown, maybe due to the lack of IAM permissions. You are advised to go to the OBS page to view the bucket ACL configuration.

    Creating OBS buckets is free of charge, but saving files will incur certain costs.

    If you select Delete the uploaded file upon an import success, the file you uploaded will be automatically deleted from the OBS bucket after being imported to the destination database.

  • Choose from OBS

    If you select Choose from OBS for File Source, you need to select a file from the bucket.

    @@ -28,17 +35,6 @@

Attachment Storage

-

Select an OBS bucket to store the file. Click Bucket ACL Info to check whether a public OBS bucket is selected.

-
  • SAFE: The bucket ACL permission set does not contain ALL USERS.
  • WARN: The bucket ACL permission set contains ALL USERS.
  • UNKNOWN: The bucket ACL permission set is unknown, maybe due to the lack of IAM permissions. You are advised to go to the OBS page to view the bucket ACL configuration.
-

Database

-

Select the database that you want to import the file to.

-

Charset

Select a charset as needed.

diff --git a/docs/das/umn/das_10_0014.html b/docs/das/umn/das_10_0014.html index 0206021d5..13ea25e02 100644 --- a/docs/das/umn/das_10_0014.html +++ b/docs/das/umn/das_10_0014.html @@ -4,7 +4,12 @@
  1. Error message: Access denied for user 'user_name'@'100.xxx.xx.xx' (using password: YES)
    1. Error cause: The username or password of the RDS instance is incorrect.
      Solution: Check whether the username and password are correct. If you are not sure, log in to the RDS console to reset the password.

      Changing the password may affect services.

      -

      If the username and password are correct, log in to the database using a client or CLI and run select * from mysql.user where user = 'user_name' to view the account. If 100.xxx.xxx.xxx is assigned to a user, only the user can connect to the database through DAS. user_name @% and user_name @100.% are different users with independent passwords and permissions. Enter the password of user_name @100.%.

      +

      MySQL account names consist of a user name and a host name, which enables creation of distinct accounts for users with the same user name who connect from different hosts.

      +

      100.% indicates an IP address starting with 100 assigned to a server where DAS is installed.

      +

      To log in to the database on DAS as a non-root user, make sure 100.% is assigned to the user's host.

      +

      If the username and password are correct, log in to the database using a client or CLI as the root user. Then run select * from mysql.user where user = 'user_name' to view the account.

      +

      user_name @% and user_name @100.% are different users with independent passwords and permissions even they have the same user_name. If you have both the accounts, enter the password of user_name @100.% to log in to your database on DAS.

      +
      Figure 1 User management
    2. Error cause: The IP address of the DAS server is not in the whitelist of the login user.
      Solution: Log in to the database using the client or CLI, and create a user that can be used to access the database through DAS.
      create user 'user_name'@'100.%' identified by 'password'; 
       grant select on *.* to 'user_name'@'100.%';
      • Ensure that the IP address of the DAS server is in a CIDR block starting with 100. Add the IP address to the whitelist of the login user.
      • Grant permissions to user user_name@100.% based on service requirements.
      @@ -14,7 +19,7 @@ grant select on *.* to 'user_name'@'100.%';
      select user, host, ssl_type from mysql.user where user = 'user_name';
  2. Error message: Trying to connect with ssl, but ssl not enabled in the server

    Error cause: The SSL function is not enabled on the server.

    -
    Solution: Run the following statement to check whether the user is an SSL user. If yes, enable SSL on the RDS instance details page. The user is an SSL user if the ssl_type field has a value.
    select user, host, ssl_type from mysql.user where user = 'user_name';
    +
    Solution: Run the following statement to check whether the user is an SSL user. If yes, enable SSL on the RDS instance details page. The user is an SSL user if the ssl_type field has a value.
    select user, host, ssl_type from mysql.user where user = 'user_name';
  3. Error message: Client does not support authentication protocol requested by server. plugin type was = 'sha256_password'.
    1. Error cause: DAS does not allow you to connect to the database whose password is encrypted with SHA-256.
      Solution: Execute the following SQL statements to change the password encryption method to mysql_native_password.
      alter user 'user_name'@'%' identified with mysql_native_password by 'password';
      diff --git a/docs/das/umn/en-us_image_0000002369231434.png b/docs/das/umn/en-us_image_0000002369231434.png new file mode 100644 index 0000000000000000000000000000000000000000..b99e66bebd15fb4b90ac724f15f1e4dbd612a806 GIT binary patch literal 42566 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 d_8U$1PsgJN-`