# 权限 · MatrixOne

实例中的用户、角色和对象权限在租户范围内生效。每个实例对应一个租户（Account），不同实例之间的数据和权限相互隔离；AI Studio 工作区角色不在本页配置。

SQL 权限分类速查见[SQL 参考 · 权限分类](../../reference/sql/privileges.md)。AI Studio 工作区角色见[用户权限](../ai-studio/permissions/users.md)和[角色](../ai-studio/permissions/roles.md)。

## 权限范围

| 能力 | 作用 |
| --- | --- |
| 身份鉴别与认证 | 管理用户、角色和密码。 |
| 访问控制 | 限制用户访问对象和执行操作。 |
| 传输加密 | 保护传输内容，具体见 TLS 等相关文档。 |
| 审计与日志 | 追踪活动，与事件等能力配合使用。 |
| 用户、角色和权限分配 | 将权限授予角色，再将角色授予用户。 |
| 对象级权限 | 管理数据库、表、视图等对象的访问权限。 |
| 权限继承 | 在受控范围内传递角色权限。 |

密码建议使用大小写字母、数字和特殊符号，长度不少于 8 位。创建实例时，admin 密码还必须满足[数据库实例](instances.md)中的硬性规则。

## 两种权限模型

MatrixOne 权限结合以下两种模型：

1. **RBAC（基于角色）**：权限授予角色，角色再授予用户。
2. **DAC（自主访问）**：对象有一个 **Owner**，Owner 可以管理该对象上的权限。

## 核心概念

### 对象

权限封装在对象上，包括账号 / 实例租户、用户、角色、数据库、表和视图等。高层对象可以创建低层对象，形成对象层级。

### Owner（创建者角色）

- 对象创建时，创建该对象的角色成为 Owner，并拥有该对象的 **Ownership**。
- 一个对象在任意时刻只有一个 Owner；一个角色可以拥有多个对象。
- 角色本身也是对象，也有自己的 Owner。
- 删除 Owner 时，对象的 Owner 会转移给被删除角色的 Owner。
- Owner 可以将所有权转移给其他角色。
- **ACCOUNTADMIN** 会在租户创建后自动生成。它不一定是每个对象的 Owner，但拥有所有对象的 Ownership 权限。

一个用户可以拥有多个角色。当前生效的角色是**主要角色**，其他角色是**次要角色**。可以使用以下语句切换角色：

```sql
set role <role>;
set secondary role all;
set secondary role none;
```

### 租户（Account）

一个实例对应一个租户，数据与权限体系在租户范围内隔离。

### 角色

- 一个角色可以拥有多个权限，也可以授予多个用户。
- 角色可以将权限传递给另一个角色，但不能形成循环继承。
- 角色和用户只在当前租户内生效。
- 只有具有 **Manage Grants** 的角色才能执行角色之间的权限传递。该权限默认授予 **MOADMIN / ACCOUNTADMIN**，不建议随意授予业务自定义角色。

系统会为集群或租户初始化默认的高权限角色和用户。不建议将这些账号直接用于日常业务 SQL；应按业务创建自定义角色并执行最小授权。

## 按用户和角色授予权限

1. 使用 admin 或高权限角色创建用户和角色。
2. 将数据库、表等对象权限 `GRANT` 给角色。
3. 将角色 `GRANT` 给用户。
4. 在数据库管理平台中使用 `用户名:角色名` 登录；具体登录方式见[数据库实例 · 登录数据库管理平台](instances.md#登录数据库管理平台)。

`GRANT`、`REVOKE` 和 `CREATE USER` 等语句见[参考 · SQL](../../reference/sql/index.md)中的 DCL 相关内容。

## 网络与访问配置

实例级访问控制还包括：

- **IP 白名单 / 网络策略**：创建实例时可以选择**允许指定 IP**，也可以在实例详情中编辑。
- **TLS 传输加密**：保护客户端与实例之间的传输内容。
- **私网访问**：通过 Private Link、VPC 终端节点等方式访问实例。

具体开关和步骤以实例管理平台中的网络与安全页面为准。

## MatrixOne 与 AI Studio 权限的区别

| | MatrixOne | AI Studio |
| --- | --- | --- |
| 范围 | 实例租户内的库、表、角色和用户。 | 工作区用户、功能和对象权限，例如知识库 K 码。 |
| 入口 | 实例管理平台或数据库管理平台的角色、用户页面。 | 控制台的**用户权限**。 |
| 速查 | [SQL 参考 · 权限分类](../../reference/sql/privileges.md)。 | [AI Studio · 用户权限](../ai-studio/permissions/users.md)和[角色](../ai-studio/permissions/roles.md)。 |
