
# 权限介绍
权限表示用户访问某个数据库对象（包括表、视图、函数、模型等）的操作（包括增、删、改、查、创建等）是否被允许。
Aura的权限管理分为两种场景：
- 数据对象权限 将数据库对象（表和视图、指定字段、数据库、函数、模式等）的相关权限授予特定角色或用户。GRANT命令将数据库对象的特定权限授予一个或多个角色。这些权限会追加到已有的权限上。
  

- 用户权限 将一个角色的权限授予一个或多个其他用户。在这种情况下，每个角色或用户都可视为拥有一个或多个数据库权限的集合。
  
#### 原理介绍
Aura通过Database、Schema和数据对象权限实现层级权限管理。
- Database之间无法直接互访，通过连接隔离实现彻底的权限隔离。各个Database之间无共享资源，可实现连接隔离、权限隔离等。用户和角色在整个服务范围内是共享的，但是各Database间的数据并不共享。即用户可以连接任何数据库，但当连接成功后，任何用户都只能访问连接请求里所声明的数据库。
- Schema隔离的方式共用资源较多，可以通过GRANT与REVOKE语法便捷地控制不同用户对各Schema及其下属对象的权限，从而赋给业务更多的灵活性。每个数据库包括一个或多个Schema。每个Schema包含表、函数等其他类型的对象。用户要访问包含在指定Schema中的对象，需要被独立授权。
- 对象创建后，默认只有对象所有者或者系统管理员可以查询、修改和删除对象。其他用户要访问具体的数据库对象，例如table1，需要被授予table1的SELECT权限。
图1权限原理   
![](https://support.huaweicloud.com/sqlref-aura-aidatalake/zh-cn_image_0000002671415224.png)
