
# 如何通过DAS实现只读账号登录数据库
DAS服务的系统权限策略中本身不支持只读账号，但是可以通过在IAM里创建用户自定义策略，搭配数据库自身的只读账号功能来实现。
#### IAM权限和数据库权限的区别
DAS作为管理面服务，不会直接对客户的数据库实例资源进行增删改操作。在DAS页面执行的只有增删改数据库连接（即数据库登录信息）的操作。
IAM权限控制对DAS的应用范围仅在登录数据库连接前，登录数据库连接后，权限校验就由数据库账号自身的权限来接管了。
您可以通过IAM[自定义权限策略](https://support.huaweicloud.com/productdesc-das/das_01_0012.html)来控制子账号是否能增删改数据连接、能否登录数据库连接，但是进入数据库后，IAM无法再干涉用户执行SQL命令，此时只有数据库账号权限可以发挥作用。
#### 操作步骤
1. 使用主账号登录统一身份认证服务IAM控制台。
2. 创建自定义权限策略。
   
   1. 在左侧导航栏中选择"权限管理 \> 权限"，单击"创建自定义策略"。
   
   2. 配置相关参数。
      图1配置自定义权限策略   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001752414965.png)
      表1参数说明 
      | **参数名称** | **说明**                                                                                                                             | **示例**                |
      |:---|:---|:---|
      | 策略名称     | 自定义名称。                                                                                                                             | das-log-database      |
      | 策略配置方式   | 支持可视化视图和JSON视图。                                                                                                                    | 可视化视图                 |
      | 策略内容     | 选择数据管理服务，根据需要添加相应的只读权限。 此处以"das:connections:login"为例，添加了此权限的用户或用户组仅具有通过DAS服务登录数据库连接的功能。 | das:connections:login |
         
      
   
   3. 单击确定，返回权限页面，可以查看到刚创建好的自定义权限策略。
      图2查看自定义权限策略   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001704584718.png) 
   
   
   
   
3. 创建用户组并授权[2]中的自定义权限策略。
   
   1. 在左侧导航栏选择用户组，单击"创建用户组"，填写用户组名称，完成用户组创建。
   
   2. 单击用户组操作列的"授权"，选择[2]中创建好的自定义策略。
      图3授权   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001752431749.png) 
   
   3. 单击"下一步"，授权范围默认"所有资源"，继续单击"确定"。
   
   
   
   
4. 创建用户并添加到用户组。
   
   1. 在左侧导航栏选择用户，单击"创建用户"，配置用户基本信息。
      图4配置用户基本信息   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001704594022.png) 
   
   2. 单击下一步，将当前用户添加到[3]中创建的用户组中。
      图5添加用户到用户组   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001704754054.png) 
   
   3. 单击创建用户，即可创建新用户（即IAM子账号）。此时该用户只有DAS登录数据库连接的权限。
   
   
   
   
5. 创建数据库只读账号。此处以RDS for MySQL为例。
   
   1. 登录云数据库RDS控制台。
   
   2. 在实例管理页面，单击目标实例名称，进入基本信息页面。
   
   3. 在左侧导航栏中选择"账号管理"，单击"创建账号"，创建一个只读权限的数据库账号。
      图6创建数据库只读账号   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001752409281.png)
      ![](https://support.huaweicloud.com/bestpractice-das/public_sys-resources/note_3.0-zh-cn.png)
      您也可以登录RDS for MySQL数据库通过命令行来创建只读账号，具体可参考如下命令：
      ```
      CREATE USER 'db_read_only'@'%' IDENTIFIED BY '**********';
      GRANT SELECT ON *.* TO 'db_read_only'@'%';
      FLUSH PRIVILEGES;
      ```
      
   
   
   
   
6. 主账号通过DAS共享只读数据库功能给IAM子账号。 
   1. 使用主账号登录数据管理服务控制台。
   
   2. 使用只读数据库账号新增一条登录信息。 在左侧导航栏选择"开发工具"，在"由我创建的数据库实例登录"页面，单击"新增数据库实例登录"。
      图7新增数据库实例登录   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001990676614.png)
      **此处登录用户名使用[5]中创建好的数据库只读账号。**
      
   
   3. 共享只读账号的数据库实例登录信息给IAM子账号。 单击数据库实例登录信息列表中"共享用户数"列对应的数字。
      图8共享用户   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001752482925.png)
      选择共享截止时间，添加方式选择同步子账号，在待选用户中选择[4]中创建的IAM子账号，单击"确定"。
      图9添加共享用户   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001704638184.png) 
   
   
   
   
7. 使用[4]中创建好的IAM子账号登录数据管理服务，验证只读权限。
   
   图10验证只读权限   
   ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000001752536905.png)
   使用IAM子账号登录到DAS服务后，选择"开发工具"，可以在他人共享给我的数据库实例登录页面，查看到由主账号共享给IAM子账号的数据库登录信息。在操作列可以看到只有登录数据库连接的权限。
   
   
 
