
# 权限设计规范
- 【规则】数据库初始用户连接和访问数据库应作为DBA管理用途，不允许业务直接使用该数据库用户连接和访问数据库。
  ![](https://support.huaweicloud.com/distributed-devg-v3-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  数据库初始用户，即数据库的安装用户，与集群所属的操作系统用户同名。
  
- 【规则】数据库初始用户为业务创建用户和数据库，业务使用所创建的用户登录和访问数据库。
- 【规则】合理对角色和用户赋权，应使用最小化权限原则。
- 【建议】通过角色而不是用户来管理权限。 使用角色管理权限，即在角色中配置权限，再将角色赋予用户。
  通过角色管理权限，更便于多用户、用户变更等场景下的权限管理。例如：
  - 角色和用户为多对多关系，一个角色可以赋予多个用户，修改角色中的权限，被赋予角色的用户权限就可以同时更新；
  
  - 删除用户时，不会影响到角色；
  
  - 新建用户后可以通过赋予角色快速获取所需权限。
   
- 【建议】避免因权限使用不当导致权限被利用的风险。 部分场景用户操作不当可能会产生权限被利用的风险。例如：
  - 当用户使用关联函数的方式创建非系统自带类型时，需要了解该类型定义及该类型所关联的函数。如果使用不当，可能会因为所关联的函数而产生权限被利用的风险。
  
  - 通过GRANT授予用户使用表的权限时，如果用户使用不当，可能通过ALTER在表的默认值、约束增加表达式，通过创建索引在INDEX上增加表达式等操作，产生权限被利用的风险。
  
  - 通过GRANT授予用户使用TRIGGER的权限时，如果用户使用不当，可能通过WHEN条件创建表达式，当触发器被触发时，存在权限被利用的风险。
   
 
