diff --git a/docs/admin-manual/auth/authentication-and-authorization.md b/docs/admin-manual/auth/authentication-and-authorization.md
index 09f07153c7be0..f42644af3513d 100644
--- a/docs/admin-manual/auth/authentication-and-authorization.md
+++ b/docs/admin-manual/auth/authentication-and-authorization.md
@@ -302,7 +302,11 @@ Please refer to [Authorization Scheme Based on Apache Ranger](./ranger.md).
- root@'%': root user, allowed to log in from any node, with the operator role.
- admin@'%': admin user, allowed to log in from any node, with the admin role.
-2. It is not supported to delete or change the permissions of roles or users created by default.
+2. Deleting or altering the permissions of default created users, roles, or users is not supported.
+ - Deleting the users root@'%' and admin@'%' is not supported, but creating and deleting root@'xxx' and admin@'xxx' users (where xxx refers to any host except %) is allowed (Doris treats these users as regular users).
+ - Revoking the default roles of root@'%' and admin@'%' is not supported.
+ - Deleting the roles operator and admin is not supported.
+ - Modifying the permissions of the roles operator and admin is not supported.
3. There is only one user with the operator role, which is Root. There can be multiple users with the admin role.
diff --git a/docs/admin-manual/auth/authorization/ranger.md b/docs/admin-manual/auth/authorization/ranger.md
index d22c7eee83f71..05bca44e80986 100644
--- a/docs/admin-manual/auth/authorization/ranger.md
+++ b/docs/admin-manual/auth/authorization/ranger.md
@@ -167,7 +167,9 @@ Equivalent to the internal Doris authorization statement `grant usage_priv on st
As shown in the image, when creating the service, add the configuration `default.policy.users`. If you need to configure multiple users with full permissions, separate them with `,`.

+4. After using Ranger for authentication, is internal authorization still effective?
+ No, it cannot be used, and roles cannot be created/deleted.
## Install and Configure Doris Ranger Plugin
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authentication-and-authorization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authentication-and-authorization.md
index e9432c5f777eb..8df42d28cebe1 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authentication-and-authorization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authentication-and-authorization.md
@@ -302,7 +302,11 @@ userN 通过 role3 拥有了 priv1 的权限,通过 roleN 拥有了 priv2 和
- root@'%':root 用户,允许从任意节点登陆,角色为 operator。
- admin@'%':admin 用户,允许从任意节点登陆,角色为 admin。
-2. 不支持删除或更改默认创建的角色或用户的权限。
+2. 不支持删除或更改默认创建的用户,角色或用户的权限。
+ - 不支持删除 root@'%' 和 admin@'%' 用户,但是允许创建和删除 root@'xxx' 和 admin@'xxx' 用户(xxx 指的是除了 % 之外的 host)(Doris 会把这些用户视为普通用户)
+ - 不支持撤销 root@'%' 和 admin@'%' 的默认角色
+ - 不支持删除角色 operator 和 admin
+ - 不支持操作角色 operator 和 admin 的权限
3. operator 角色的用户有且只有一个,即 Root。admin 角色的用户可以创建多个。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authorization/ranger.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authorization/ranger.md
index 2a8b8a0d78d99..2774cc4aa0eab 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authorization/ranger.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/admin-manual/auth/authorization/ranger.md
@@ -166,6 +166,10 @@ Ranger 的安装和配置见下文:安装和配置 Doris Ranger 插件
如图所示,创建服务的时候,添加配置 `default.policy.users` ,如需配置多个用户拥有全部权限,用 `,` 分隔

+4. 使用 ranger 鉴权后,内部授权还有用么?
+
+ 不能用,也不能创建/删除角色
+
## 安装和配置 Doris Ranger 插件
### 安装插件
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication-and-authorization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication-and-authorization.md
deleted file mode 100644
index 17fef5f50b20f..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication-and-authorization.md
+++ /dev/null
@@ -1,377 +0,0 @@
----
-{
- "title": "认证与鉴权概述",
- "language": "zh-CN"
-}
----
-
-Doris 的权限管理系统参照了 MySQL 的权限管理机制,做到了行级别细粒度的权限控制,基于角色的权限访问控制,并且支持白名单机制。
-
-## 名词解释
-
-1. 用户标识 User Identity
-
- 在权限系统中,一个用户被识别为一个 User Identity(用户标识)。用户标识由两部分组成:`username` 和 `host`。其中 `username` 为用户名,由英文大小写组成。`host` 表示该用户链接来自的 IP。User Identity 以 `username@'host'` 的方式呈现,表示来自 `host` 的 `username`。
-
- User Identity 的另一种表现方式为 `username@['domain']`,其中 `domain` 为域名,可以通过 DNS 解析为一组 IP。最终表现为一组 `username@'host'`,所以后面我们统一使用 `username@'host'` 来表示。
-
-2. 权限 Privilege
-
- 权限作用的对象是节点、数据目录、数据库或表。不同的权限代表不同的操作许可。
-
-3. 角色 Role
-
- Doris 可以创建自定义命名的角色。角色可以被看做是一组权限的集合。新创建的用户可以被赋予某一角色,则自动被赋予该角色所拥有的权限。后续对角色的权限变更,也会体现在所有属于该角色的用户权限上。
-
-4. 用户属性 User Property
-
- 用户属性直接附属于某一用户,而不是用户标识。即 `user@'192.%'` 和 `user@['domain']` 都拥有同一组用户属性,该属性属于用户 `user`,而不是 `user@'192.%'` 或 `user@['domain']`。
-
- 用户属性包括但不限于:用户最大连接数、导入集群配置等等。
-
-## 认证和鉴权框架
-
-用户登录 Apache Doris 的过程,分为**认证**和**鉴权**两部分。
-
-- 认证:根据用户提供的凭据(如用户名、客户 IP、密码)等,进行身份验证。验证通过后,会将用户个体映射到系统内的用户标识(User Identity)上。
-- 鉴权:基于获取到的用户标识,根据用户标识所对应的权限,检查用户是否有相应操作的权限。
-
-## 认证
-
-Doris 支持内置认证方案和以及 LDAP 的认证方案。
-
-### Doris 内置认证方案
-
-基于 Doris 自身存储的用户名,密码等信息来认证。
-
-管理员通过 `CREATE USER` 命令来创建用户,通过 `SHOW ALL GRANTS` 来查看创建的所有用户。
-
-用户登录时,会判断用户名,密码及客户端的 IP 地址是否正确。
-
-#### 密码策略
-
-Doris 支持以下密码策略,可以帮助用户更好的进行密码管理。
-
-1. `PASSWORD_HISTORY`
-
- 是否允许当前用户重置密码时使用历史密码。如 `PASSWORD_HISTORY 10` 表示禁止使用过去 10 次设置过的密码为新密码。如果设置为 `PASSWORD_HISTORY DEFAULT`,则会使用全局变量 `password_history` 中的值。0 表示不启用这个功能。默认为 0。
-
- 示例:
-
- - 设置全局变量:`SET GLOBAL password_history = 10`
- - 为用户设置:`ALTER USER user1@'ip' PASSWORD_HISTORY 10`
-
-2. `PASSWORD_EXPIRE`
-
- 设置当前用户密码的过期时间。如 `PASSWORD_EXPIRE INTERVAL 10 DAY` 表示密码会在 10 天后过期。`PASSWORD_EXPIRE NEVER` 表示密码不过期。如果设置为 `PASSWORD_EXPIRE DEFAULT`,则会使用全局变量 `default_password_lifetime` 中的值(单位为 天)。默认为 NEVER(或 0),表示不会过期。
-
- 示例:
-
- - 设置全局变量:`SET GLOBAL default_password_lifetime = 1`
- - 为用户设置:`ALTER USER user1@'ip' PASSWORD_EXPIRE INTERVAL 10 DAY`
-
-3. `FAILED_LOGIN_ATTEMPTS` 和 `PASSWORD_LOCK_TIME`
-
- 设置当前用户登录时,如果使用错误的密码登录 n 次后,账户将被锁定,并设置锁定时间。如 `FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 DAY` 表示如果 3 次错误登录,则账户会被锁定一天。管理员可以通过 `ALTER USER` 语句主动解锁被锁定的账户。
-
- 示例:
-
- - 为用户设置:`ALTER USER user1@'ip' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 DAY`
-
-4. 密码强度
-
- 该功能由全局变量 `validate_password_policy` 控制。默认为 `NONE/0`,即不检查密码强度。如果设置为 `STRONG/2`,则密码必须包含“大写字母”,“小写字母”,“数字”和“特殊字符”中的 3 项,并且长度必须大于等于 8。
-
- 示例:
-
- - `SET validate_password_policy=STRONG`
-
-更多帮助,请参阅[ALTER USER](../../../sql-manual/sql-statements/account-management/ALTER-USER)。
-
-### 基于 LDAP 的认证方案
-
-请参阅[基于 LDAP 的认证方案](./ldap.md)。
-
-## 鉴权
-
-### 权限操作
-
-- 创建用户:[CREATE USER](../../../sql-manual/sql-statements/account-management/CREATE-USER)
-- 修改用户:[ALTER USER](../../../sql-manual/sql-statements/account-management/ALTER-USER)
-- 删除用户:[DROP USER](../../../sql-manual/sql-statements/account-management/DROP-USER)
-- 授权/分配角色:[GRANT](../../../sql-manual/sql-statements/account-management/GRANT-TO)
-- 撤权/撤销角色:[REVOKE](../../../sql-manual/sql-statements/account-management/REVOKE-FROM)
-- 创建角色:[CREATE ROLE](../../../sql-manual/sql-statements/account-management/CREATE-ROLE)
-- 删除角色:[DROP ROLE](../../../sql-manual/sql-statements/account-management/DROP-ROLE)
-- 修改角色:[ALTER ROLE](../../../sql-manual/sql-statements/account-management/ALTER-ROLE)
-- 查看当前用户权限和角色:[SHOW GRANTS](../../../sql-manual/sql-statements/account-management/SHOW-GRANTS)
-- 查看所有用户权限和角色:[SHOW ALL GRANTS](../../../sql-manual/sql-statements/account-management/SHOW-GRANTS)
-- 查看已创建的角色:[SHOW ROLES](../../../sql-manual/sql-statements/account-management/SHOW-ROLES)
-- 设置用户属性:[SET PROPERTY](../../../sql-manual/sql-statements/account-management/SET-PROPERTY)
-- 查看用户属性:[SHOW PROPERTY](../../../sql-manual/sql-statements/account-management/SHOW-PROPERTY)
-- 修改密码:[SET PASSWORD](../../../sql-manual/sql-statements/account-management/SET-PASSWORD)
-- 查看支持的所有权限项:[SHOW PRIVILEGES]
-- 查看行权限策略 [SHOW ROW POLICY]
-- 创建行权限策略 [CREATE ROW POLICY]
-
-### 权限类型
-
-Doris 目前支持以下几种权限
-
-1. `Node_priv`
-
- 节点变更权限。包括 FE、BE、BROKER 节点的添加、删除、下线等操作。
-
- Root 用户默认拥有该权限。同时拥有 `Grant_priv` 和 `Node_priv` 的用户,可以将该权限赋予其他用户。
-
- 该权限只能赋予 Global 级别。
-
-2. `Grant_priv`
-
- 权限变更权限。允许执行包括授权、撤权、添加/删除/变更 用户/角色 等操作。
-
- 给其他用户/角色授权时,2.1.2 版本之前,当前用户只需要相应层级的 `Grant_priv` 权限,2.1.2 版本之后当前用户也要有想要授权的资源的权限。
-
- 给其他用户分配角色时,要有 Global 级别的 `Grant_priv` 权限。
-
-3. `Select_priv`
-
- 对数据目录、数据库、表的只读权限。
-
-4. `Load_priv`
-
- 对数据目录、数据库、表的写权限。包括 Load、Insert、Delete 等。
-
-5. `Alter_priv`
-
- 对数据目录、数据库、表的更改权限。包括重命名 库/表、添加/删除/变更 列、添加/删除 分区等操作。
-
-6. `Create_priv`
-
- 创建数据目录、数据库、表、视图的权限。
-
-7. `Drop_priv`
-
- 删除数据目录、数据库、表、视图的权限。
-
-8. `Usage_priv`
-
- Resource 和 Workload Group 的使用权限。
-
-9. `Show_view_priv`
-
- 执行 `SHOW CREATE VIEW` 的权限。
-
-### 权限层级
-
-#### 全局权限
-
-即通过 GRANT 语句授予的 `*.*.*` 上的权限。被授予的权限适用于任意 Catalog 中的任意库表。
-
-#### 数据目录(Catalog)权限
-
-即通过 GRANT 语句授予的 `ctl.*.*` 上的权限。被授予的权限适用于指定 Catalog 中的任意库表。
-
-#### 库级权限
-
-即通过 GRANT 语句授予的 `ctl.db.*` 上的权限。被授予的权限适用于指定数据库中的任意表。
-
-#### 表级权限
-
-即通过 GRANT 语句授予的 `ctl.db.tbl` 上的权限。被授予的权限适用于指定表的任意列。
-
-#### 列级权限
-
-列权限主要用于限制用户对数据表中某些列的访问权限。具体来说,列权限允许管理员设定某些列的查看、编辑等权限,以控制用户对特定列数据的访问和操作。
-
-可以通过 `GRANT Select_priv(col1,col2) ON ctl.db.tbl TO user1` 授予的指定表的部分列的权限。
-
-目前列权限仅支持 `Select_priv`。
-
-#### 行级权限
-
-行权限(Row Policy)使得管理员能够基于数据的某些字段来定义访问策略,从而控制哪些用户可以访问哪些数据行。
-
-具体来说,Row Policy 允许管理员创建规则,这些规则可以基于存储在数据中的实际值来过滤或限制用户对行的访问。
-
-从 1.2 版本开始,可以通过 `CREATE ROW POLICY` 命令创建行级权限。
-
-从 2.1.2 版本开始,支持通过 Apache Ranger 的 `Row Level Filter` 来设置行权限。
-
-#### 使用权限
-
-- Resource 权限
-
- Resource 权限是为 Resource 单独设置的权限,和库表等权限没有关系,只能分配 `Usage_priv` 和 `Grant_priv` 权限。
-
- 给所有 Resource 分配权限可以通过 `GRANT USAGE_PRIV ON RESOURCE '%' TO user1` 语句。
-
-- Workload Group 权限
-
- Workload Group 权限是为 Workload Group 单独设置的权限,和库表等权限没有关系,只能分配 `Usage_priv` 和 `Grant_priv` 权限。
-
- 给所有 Workload Group 分配权限可以通过 `GRANT USAGE_PRIV ON WORKLOAD GROUP '%' TO user1` 语句。
-
-### 数据脱敏
-
-数据脱敏是一种保护敏感数据的方法,它通过对原始数据进行修改、替换或隐藏,使得脱敏后的数据在保持一定格式和特性的同时,不再包含敏感信息。
-
-例如,管理员可以选择将信用卡号、身份证号等敏感字段的部分或全部数字替换为星号 `*` 或其他字符,或者将真实姓名替换为假名。
-
-从 2.1.2 版本开始,支持通过 Apache Ranger 的 Data Masking 来为某些列设置脱敏策略,目前仅支持通过 [Apache Ranger](./ranger.md) 来设置。
-
-### Doris 内置的鉴权方案
-
-Doris 权限设计基于 RBAC(Role-Based Access Control)的权限管理模型,用户和角色关联,角色和权限关联,用户通过角色间接和权限关联。
-
-当角色被删除时,用户自动失去该角色的所有权限。
-
-当用户和角色取消关联,用户自动失去角色的所有权限。
-
-当角色的权限被增加或删除,用户的权限也会随之变更。
-
-```
-┌────────┐ ┌────────┐ ┌────────┐
-│ user1 ├────┬───► role1 ├────┬────► priv1 │
-└────────┘ │ └────────┘ │ └────────┘
- │ │
- │ │
- │ ┌────────┐ │
- │ │ role2 ├────┤
-┌────────┐ │ └────────┘ │ ┌────────┐
-│ user2 ├────┘ │ ┌─► priv2 │
-└────────┘ │ │ └────────┘
- ┌────────┐ │ │
- ┌──────► role3 ├────┘ │
- │ └────────┘ │
- │ │
- │ │
-┌────────┐ │ ┌────────┐ │ ┌────────┐
-│ userN ├─┴──────► roleN ├───────┴─► privN │
-└────────┘ └────────┘ └────────┘
-```
-
-如上图所示:
-
-user1 和 user2 都是通过 role1 拥有了 priv1 的权限。
-
-userN 通过 role3 拥有了 priv1 的权限,通过 roleN 拥有了 priv2 和 privN 的权限,因此 userN 同时拥有 priv1,priv2 和 privN 的权限。
-
-为了方便用户操作,是可以直接给用户授权的,底层实现上,是为每个用户创建了一个专属于该用户的默认角色,当给用户授权时,实际上是在给该用户的默认角色授权。
-
-默认角色不能被删除,不能被分配给其他人,删除用户时,默认角色也自动删除。
-
-### 基于 Apache Ranger 的鉴权方案
-
-请参阅[基于 Apache Ranger 的鉴权方案](./ranger.md)
-
-## 常见问题
-
-### 权限项说明
-
-1. 拥有 ADMIN 权限,或 GLOBAL 层级的 GRANT 权限的用户可以进行以下操作:
-
- - CREATE USER
- - DROP USER
- - ALTER USER
- - SHOW GRANTS
- - CREATE ROLE
- - DROP ROLE
- - ALTER ROLE
- - SHOW ROLES
- - SHOW PROPERTY FOR USER
-
-2. GRANT/REVOKE
-
- - 拥有 ADMIN 权限,可以授予或撤销任意用户的权限。
- - 拥有 ADMIN 或 GLOBAL 层级 GRANT 权限可以把角色分配给用户。
- - 同时拥有相应层级的 GRANT 权限和要分配的权限,可以把权限分配给用户/角色。
-
-3. SET PASSWORD
-
- - 拥有 ADMIN 权限,或者 GLOBAL 层级 GRANT 权限的用户,可以设置非 ROOT 用户的密码。
- - 普通用户可以设置自己对应的 User Identity 的密码。自己对应的 User Identity 可以通过 `SELECT CURRENT_USER()` 命令查看。
- - ROOT 用户可以修改自己的密码。
-
-### 其他说明
-
-1. Doris 初始化时,会自动创建如下用户和角色:
-
- - operator 角色:该角色拥有 `Node_priv` 和 `Admin_priv`,即对 Doris 的所有权限。
- - admin 角色:该角色拥有 `Admin_priv`,即除节点变更以外的所有权限。
- - root@'%':root 用户,允许从任意节点登陆,角色为 operator。
- - admin@'%':admin 用户,允许从任意节点登陆,角色为 admin。
-
-2. 不支持删除或更改默认创建的角色或用户的权限。
-
-3. operator 角色的用户有且只有一个,即 Root。admin 角色的用户可以创建多个。
-
-4. 一些可能产生冲突的操作说明
-
- 1. 域名与 ip 冲突:
-
- 假设创建了如下用户:
-
- `CREATE USER user1@['domain'];`
-
- 并且授权:
-
- `GRANT SELECT_PRIV ON *.* TO user1@['domain']`
-
- 该 domain 被解析为两个 IP:ip1 和 ip2。
-
- 假设之后,我们对 `user1@'ip1'` 进行一次单独授权:
-
- `GRANT ALTER_PRIV ON . TO user1@'ip1';`
-
- 则 `user1@'ip1'` 的权限会被修改为 Select_priv 和 Alter_priv。并且当我们再次变更 `user1@['domain']` 的权限时,`user1@'ip1'` 也不会跟随改变。
-
- 2. 重复 ip 冲突:
-
- 假设创建了如下用户:
-
- ```
- CREATE USER user1@'%' IDENTIFIED BY "12345";
- CREATE USER user1@'192.%' IDENTIFIED BY "abcde";
- ```
-
- 在优先级上,`'192.%'` 优先于 `'%'`,因此,当用户 `user1` 从 `192.168.1.1` 这台机器尝试使用密码 `'12345'` 登陆 Doris 会被拒绝。
-
-5. 忘记密码
-
- 如果忘记了密码无法登陆 Doris,可以在 FE 的 config 文件中添加 `skip_localhost_auth_check=true` 参数,并且重启 FE,从而无密码在本机通过 root 登陆 Doris。
-
- 登陆后,可以通过 `SET PASSWORD` 命令重置密码。
-
-6. 任何用户都不能重置 root 用户的密码,除了 root 用户自己。
-
-7. `Admin_priv` 权限只能在 GLOBAL 层级授予或撤销。
-
-8. `current_user()` 和 `user()`
-
- 用户可以通过 `SELECT current_user()` 和 `SELECT user()` 分别查看 `current_user` 和 `user`。其中 `current_user` 表示当前用户是以哪种身份通过认证系统的,而 `user` 则是用户当前实际的 User Identity。
-
- 举例说明:
-
- 假设创建了 `user1@'192.%'` 这个用户,然后以为来自 `192.168.10.1` 的用户 `user1` 登陆了系统,则此时的 `current_user` 为 `user1@'192.%'`,而 `user` 为 `user1@'192.168.10.1'`。
-
- 所有的权限都是赋予某一个 `current_user` 的,真实用户拥有对应的 `current_user` 的所有权限。
-
-## 最佳实践
-
-这里举例一些 Doris 权限系统的使用场景。
-
-1. 场景一
-
- Doris 集群的使用者分为管理员(Admin)、开发工程师(RD)和用户(Client)。其中管理员拥有整个集群的所有权限,主要负责集群的搭建、节点管理等。开发工程师负责业务建模,包括建库建表、数据的导入和修改等。用户访问不同的数据库和表来获取数据。
-
- 在这种场景下,可以为管理员赋予 ADMIN 权限或 GRANT 权限。对 RD 赋予对任意或指定数据库表的 CREATE、DROP、ALTER、LOAD、SELECT 权限。对 Client 赋予对任意或指定数据库表 SELECT 权限。同时,也可以通过创建不同的角色,来简化对多个用户的授权操作。
-
-2. 场景二
-
- 一个集群内有多个业务,每个业务可能使用一个或多个数据。每个业务需要管理自己的用户。在这种场景下。管理员用户可以为每个数据库创建一个拥有 DATABASE 层级 GRANT 权限的用户。该用户仅可以对用户进行指定的数据库的授权。
-
-3. 黑名单
-
- Doris 本身不支持黑名单,只有白名单功能,但我们可以通过某些方式来模拟黑名单。假设先创建了名为 `user@'192.%'` 的用户,表示允许来自 `192.*` 的用户登录。此时如果想禁止来自 `192.168.10.1` 的用户登录。则可以再创建一个用户 `cmy@'192.168.10.1'` 的用户,并设置一个新的密码。因为 `192.168.10.1` 的优先级高于 `192.%`,所以来自 `192.168.10.1` 将不能再使用旧密码进行登录。
-
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/federation.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/federation.md
deleted file mode 100644
index 79ae5740e2b65..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/federation.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-{
-"title": "联邦认证",
-"language": "zh-CN"
-}
----
-
-## LDAP
-接入第三方 LDAP 服务为 Doris 提供验证登录和组授权服务。
-### LDAP 验证登录
-LDAP 验证登录指的是接入 LDAP 服务的密码验证来补充 Doris 的验证登录。Doris 优先使用 LDAP 验证用户密码,如果 LDAP 服务中不存在该用户则继续使用 Doris 验证密码,如果 LDAP 密码正确但是 Doris 中没有对应账户则创建临时用户登录 Doris。
-
-开启 LDAP 后,用户在 Doris 和 LDAP 中存在以下几种情况:
-
-| LDAP 用户 | Doris 用户 | 密码 | 登录情况 | 登录 Doris 的用户 |
-| -------- | --------- | --------- | -------- | --------------- |
-| 存在 | 存在 | LDAP 密码 | 登录成功 | Doris 用户 |
-| 存在 | 存在 | Doris 密码 | 登录失败 | 无 |
-| 不存在 | 存在 | Doris 密码 | 登录成功 | Doris 用户 |
-| 存在 | 不存在 | LDAP 密码 | 登录成功 | Ldap 临时用户 |
-
-开启 LDAP 后,用户使用 mysql client 登录时,Doris 会先通过 LDAP 服务验证用户密码,如果 LDAP 存在用户且密码正确,Doris 则使用该用户登录;此时 Doris 若存在对应账户则直接登录该账户,如果不存在对应账户则为用户创建临时账户并登录该账户。临时账户具有具有相应对权限(参见 LDAP 组授权),仅对当前连接有效,doris 不会创建该用户,也不会产生创建用户对元数据。
-如果 LDAP 服务中不存在登录用户,则使用 Doris 进行密码认证。
-
-以下假设已开启 LDAP 认证,配置 ldap_user_filter = (&(uid={login})),且其他配置项都正确,客户端设置环境变量 LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1
-
-例如:
-
-1. Doris 和 LDAP 中都存在账户:
-
- 存在 Doris 账户:`jack@'172.10.1.10'`,密码:`123456`
-
- LDAP 用户节点存在属性:`uid: jack` 用户密码:`abcdef`
-
- 使用以下命令登录 Doris 可以登录 `jack@'172.10.1.10'` 账户:
-
- ```sql
- mysql -hDoris_HOST -PDoris_PORT -ujack -p abcdef
- ```
-
- 使用以下命令将登录失败:
-
- ```sql
- mysql -hDoris_HOST -PDoris_PORT -ujack -p 123456
- ```
-
-2. LDAP 中存在用户,Doris 中不存在对应账户:
-
- LDAP 用户节点存在属性:`uid: jack` 用户密码:`abcdef`
-
- 使用以下命令创建临时用户并登录 jack@'%',临时用户具有基本权限 DatabasePrivs:Select_priv,用户退出登录后 Doris 将删除该临时用户:
-
- ```sql
- mysql -hDoris_HOST -PDoris_PORT -ujack -p abcdef
- ```
-
-3. LDAP 不存在用户:
-
- 存在 Doris 账户:`jack@'172.10.1.10'`,密码:`123456`
-
- 使用 Doris 密码登录账户,成功:
-
- ```sql
- mysql -hDoris_HOST -PDoris_PORT -ujack -p 123456
- ```
-### LDAP 组授权
-DLAP 用户 dn 是 LDAP 组节点的“member”属性则 Doris 认为用户属于该组。LDAP 组授权是将 LDAP 中的 group 映射到 Doris 中的 role,并将所有对应的 role 权限授予登录用户,用户退出登录后 Doris 会撤销对应的 role 权限。在使用 LDAP 组授权前应该在 Doris 中创建相应的 role,并为 role 授权。
-
-登录用户权限跟 Doris 用户和组权限有关,见下表:
-
-| LDAP 用户 | Doris 用户 | 登录用户的权限 |
-| -------- | --------- | -------------------------- |
-| 存在 | 存在 | LDAP 组权限 + Doris 用户权限 |
-| 不存在 | 存在 | Doris 用户权限 |
-| 存在 | 不存在 | LDAP 组权限 |
-
-如果登录的用户为临时用户,且不存在组权限,则该用户默认具有 information_schema 的 select_priv 权限
-
-举例:
-
-LDAP 用户 dn 是 LDAP 组节点的 `member` 属性则认为用户属于该组,Doris 会截取组 dn 的第一个 Rdn 作为组名。
-
-例如用户 dn 为 `uid=jack,ou=aidp,dc=domain,dc=com`,组信息如下:
-
-```text
-dn: cn=doris_rd,ou=group,dc=domain,dc=com
-objectClass: groupOfNames
-member: uid=jack,ou=aidp,dc=domain,dc=com
-```
-
-则组名为 `doris_rd`。
-
-假如 jack 还属于 LDAP 组 `doris_qa`、`doris_pm`;Doris 存在 role:`doris_rd`、`doris_qa`、`doris_pm`,在使用 LDAP 验证登录后,用户不但具有该账户原有的权限,还将获得 role `doris_rd`、`doris_qa` 和 `doris_pm` 的权限。
-
->注意:
->
-> user 属于哪个 group 和 LDAP 树的组织结构无关,示例部分的 user2 并不一定属于 group2
-> 若想让 user2 属于 group2,需要在 group2 的 member 属性中添加 user2
-### LDAP 示例
-#### 更改 Doris 配置
-1. 在 fe/conf/fe.conf 文件中配置认证方式为 ldap authentication_type=ldap。
-2. 在 fe/conf/ldap.conf 文件中配置 LDAP 基本信息,
-3. 设置 LDAP 管理员密码:配置好 ldap.conf 文件后启动 fe,使用 root 或 admin 账号登录 Doris,执行 sql
-
-```sql
-set ldap_admin_password = password('ldap_admin_password');
-```
-#### 使用 mysql 客户端登录
- ```sql
- mysql -hDORIS_HOST -PDORIS_PORT -u user -p --enable-cleartext-plugin
- 输入 ldap 密码
- ```
-注:使用其它客户端登录可以参考下文中 客户端如何使用明文登录
-### LDAP 信息缓存
-
-为了避免频繁访问 LDAP 服务,Doris 会将 LDAP 信息缓存到内存中,可以通过 ldap.conf 中的 ldap_user_cache_timeout_s 配置项指定 LDAP 用户的缓存时间,默认为 12 小时;在修改了 LDAP 服务中的信息或者修改了 Doris 中 LDAP 用户组对应的 Role 权限后,可能因为缓存而没有及时生效,可以通过 refresh ldap 语句刷新缓存,详细查看[REFRESH-LDAP](../../../../sql-manual/sql-statements/account-management/REFRESH-LDAP)。
-
-### LDAP 验证的局限
-- 目前 Doris 的 LDAP 功能只支持明文密码验证,即用户登录时,密码在 client 与 fe 之间、fe 与 LDAP 服务之间以明文的形式传输。
-
-### 常见问题
-- 怎么判断 LDAP 用户在 doris 中有哪些角色?
-
- 使用 LDAP 用户在 doris 中登录,`show grants;`能查看当前用户有哪些角色。其中 ldapDefaultRole 是每个 ldap 用户在 doris 中都有的默认角色。
-
-- LDAP 用户在 doris 中的角色比预期少怎么排查?
-
- 1. 通过`show roles;`查看预期的角色在 doris 中是否存在,如果不存在,需要通过` CREATE ROLE rol_name;`创建角色。
- 2. 检查预期的 group 是否在`ldap_group_basedn`对应的组织结构下。
- 3. 检查预期 group 是否包含 member 属性。
- 4. 检查预期 group 的 member 属性是否包含当前用户。
-### LDAP 相关概念
-在 LDAP 中,数据是按照树型结构组织的。
-
-#### 示例(下文的介绍都将根据这个例子进行展开)
-
-```
-- dc=example,dc=com
- - ou = ou1
- - cn = group1
- - cn = user1
- - ou = ou2
- - cn = group2
- - cn = user2
- - cn = user3
-```
-
-#### LDAP 名词解释
-
-- dc(Domain Component): 可以理解为一个组织的域名,作为树的根结点
-- dn(Distinguished Name): 相当于唯一名称,例如 user1 的 dn 为 cn=user1,ou=ou1,dc=example,dc=com user2 的 dn 为 cn=user2,cn=group2,ou=ou2,dc=example,dc=com
-- rdn(Relative Distinguished Name): dn 的一部分,user1 的四个 rdn 为 cn=user1 ou=ou1 dc=example 和 dc=com
-- ou(Organization Unit): 可以理解为子组织,user 可以放在 ou 中,也可以直接放在 example.com 域中
-- cn(common name):名字
-- group: 组,可以理解为 doris 的角色
-- user: 用户,和 doris 的用户等价
-- objectClass:可以理解为每行数据的类型,比如怎么区分 group1 是 group 还是 user,每种类型的数据下面要求有不同的属性,比如 group 要求有 cn 和 member(user 列表),user 要求有 cn,password,uid 等
-### 客户端如何使用明文登录
-#### MySql Client
-客户端使用 LDAP 验证需要启用 mysql 客户端明文验证插件,使用命令行登录 Doris 可以使用下面两种方式之一启用 mysql 明文验证插件:
-
-- 设置环境变量 `LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN` 值 1
-
- 例如在 linux 或者 mac 环境中可以使用:
-
- ```shell
- echo "export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1" >> ~/.bash_profile && source ~/.bash_profile
- ```
-
-- 每次登录 Doris 时添加参数 `--enable-cleartext-plugin`
-
- ```shell
- mysql -hDORIS_HOST -PDORIS_PORT -u user -p --enable-cleartext-plugin
-
- 输入 ldap 密码
- ```
-#### Jdbc Client
-
-使用 Jdbc Client 登录 Doris 时,需要自定义 plugin。
-
-首先,创建一个名为 MysqlClearPasswordPluginWithoutSSL 的类,继承自 MysqlClearPasswordPlugin。在该类中,重写 requiresConfidentiality() 方法,并返回 false。
-
-``` java
-public class MysqlClearPasswordPluginWithoutSSL extends MysqlClearPasswordPlugin {
-@Override
-public boolean requiresConfidentiality() {
- return false;
- }
-}
-```
-在获取数据库连接时,需要将自定义的 plugin 配置到属性中
-
-即(xxx 为自定义类的包名)
-- authenticationPlugins=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL
-- defaultAuthenticationPlugin=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL
-- disabledAuthenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin
-
-eg:
-```sql
- jdbcUrl = "jdbc:mysql://localhost:9030/mydatabase?authenticationPlugins=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL&defaultAuthenticationPlugin=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL&disabledAuthenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin";
-```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/internal.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/internal.md
deleted file mode 100644
index 411ec264cf4ac..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authentication/internal.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-{
-"title": "内置认证",
-"language": "zh-CN"
-}
----
-
-## 关键概念
-### 用户
-在 Doris 中,一个 user_identity 唯一标识一个用户。user_identity 由两部分组成,user_name 和 host,其中 username 为用户名。host 标识用户端连接所在的主机地址。host 部分可以使用 % 进行模糊匹配。如果不指定 host,默认为 '%',即表示该用户可以从任意 host 连接到 Doris。
-#### 用户属性
-用户属性直接附属于 user_name,而不是 user_identity,即 user@'192.%' 和 user@['domain'] 都拥有同一组用户属性。该属性属于 user,而不是 user@'192.%' 或 user@['domain']。
-
-用户属性包括但不限于:用户最大连接数、导入集群配置等等。
-#### 内置用户
-内置用户是 Doris 默认创建的用户,并默认拥有一定的权限,包括 root 和 admin。初始密码都为空,fe 启动后,可以通过修改密码命令进行修改。不支持删除默认用户。
-- root@'%':root 用户,允许从任意节点登录,角色为 operator。
-- admin@'%':admin 用户,允许从任意节点登录,角色为 admin。
-
-### 密码
-用户登录的凭据,管理员创建用户时设置,也可以创建后由用户自己更改密码。
-
-#### 密码策略
-Doris 支持以下密码策略,可以帮助用户更好的进行密码管理。
-- PASSWORD_HISTORY
- 是否允许当前用户重置密码时使用历史密码。如 PASSWORD_HISTORY 10 表示禁止使用过去 10 次设置过的密码为新密码。如果设置为 PASSWORD_HISTORY DEFAULT,则会使用全局变量 password_history 中的值。0 表示不启用这个功能。默认为 0。
- 示例:
- - 设置全局变量:SET GLOBAL password_history = 10
- - 为用户设置:ALTER USER user1@'ip' PASSWORD_HISTORY 10
-- PASSWORD_EXPIRE
- 设置当前用户密码的过期时间。如 PASSWORD_EXPIRE INTERVAL 10 DAY 表示密码会在 10 天后过期。PASSWORD_EXPIRE NEVER 表示密码不过期。如果设置为 PASSWORD_EXPIRE DEFAULT,则会使用全局变量 default_password_lifetime 中的值(单位为 天)。默认为 NEVER(或 0),表示不会过期。
- 示例:
- - 设置全局变量:SET GLOBAL default_password_lifetime = 1
- - 为用户设置:ALTER USER user1@'ip' PASSWORD_EXPIRE INTERVAL 10 DAY
-- FAILED_LOGIN_ATTEMPTS 和 PASSWORD_LOCK_TIME
- 设置当前用户登录时,如果使用错误的密码登录 n 次后,账户将被锁定,并设置锁定时间。如 FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 DAY 表示如果 3 次错误登录,则账户会被锁定一天。管理员可以通过 ALTER USER 语句主动解锁被锁定的账户。
- 示例:
- - 为用户设置:ALTER USER user1@'ip' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 DAY
-- 密码强度
- 该功能由全局变量 validate_password_policy 控制。默认为 NONE/0,即不检查密码强度。如果设置为 STRONG/2,则密码必须包含“大写字母”,“小写字母”,“数字”和“特殊字符”中的 3 项,并且长度必须大于等于 8。
- 示例:
- - SET validate_password_policy=STRONG
-## 认证机制
-1. 客户端认证信息发送:客户端将用户的信息(如用户名、密码、数据库等)打包发送给 Doris 服务器。这些信息用于证明客户端的身份和请求访问的数据库。
-2. 服务器认证:Doris 收到客户端的认证信息后,会进行验证。如果用户名、密码以及客户端的 IP 正确,并且该用户具有访问所选数据库的权限,则认证成功,Doris 会将用户个体映射到系统内的用户标识(User Identity)上。否则,认证失败,并返回相应的错误消息给客户端。
-## 黑白名单
-Doris 本身不支持黑名单,只有白名单功能,但我们可以通过某些方式来模拟黑名单。假设先创建了名为 `user@'192.%'` 的用户,表示允许来自 `192.*` 的用户登录。此时如果想禁止来自 `192.168.10.1` 的用户登录,则可以再创建一个用户 `cmy@'192.168.10.1'`,并设置一个新的密码。因为 `192.168.10.1` 的优先级高于 `192.%`,所以来自 `192.168.10.1` 的用户将不能再使用旧密码进行登录。
-## 相关命令
-- 创建用户:[CREATE USER](../../../../sql-manual/sql-statements/account-management/CREATE-USER)
-- 查看用户:[SHOW ALL GRANTS](../../../../sql-manual/sql-statements/account-management/SHOW-GRANTS)
-- 修改用户:[ALTER USER](../../../../sql-manual/sql-statements/account-management/ALTER-USER)
-- 修改密码:[SET PASSWORD](../../../../sql-manual/sql-statements/account-management/SET-PASSWORD)
-- 删除用户:[DROP USER](../../../../sql-manual/sql-statements/account-management/DROP-USER)
-- 设置用户属性:[SET PROPERTY](../../../../sql-manual/sql-statements/account-management/SET-PROPERTY)
-- 查看用户属性:[SHOW PROPERTY](../../../../sql-manual/sql-statements/account-management/SHOW-PROPERTY)
-## 其它说明
- 1. 登录时 user_identity 优先级选择问题
-
- 如上文介绍,`user_identity` 由 `user_name` 和 `host` 组成,但是用户登录的时候,只需要输入 `user_name`,所以由 Doris 根据客户端的 IP 来匹配相应的 `host`,从而决定使用哪个 `user_identity` 登录。
-
- 如果 根据 客户端 ip 只能匹配到一个 user_identity,那么毫无疑问会匹配到这个 user_identity,但是当能够匹配到多个 user_identity 时,就会有如下的优先级问题。
- 1. 域名与 ip 的优先级:
- 假设创建了如下用户:
- ```sql
- CREATE USER user1@['domain1'] IDENTIFIED BY "12345";
- CREATE USER user1@'ip1'IDENTIFIED BY "abcde";
- ```
- domain1 被解析为两个 IP:ip1 和 ip2。
-
- 在优先级上,ip 优先于 域名,因此,当用户 user1 从 ip1 这台机器尝试使用密码 '12345' 登录 Doris 会被拒绝。
- 2. 具体 ip 和 范围 ip 的优先级:
- 假设创建了如下用户:
- ```sql
- CREATE USER user1@'%' IDENTIFIED BY "12345";
- CREATE USER user1@'192.%' IDENTIFIED BY "abcde";
- ```
- 在优先级上,'192.%' 优先于 '%',因此,当用户 user1 从 192.168.1.1 这台机器尝试使用密码 '12345' 登录 Doris 会被拒绝。
- 2. 忘记密码
-
- 如果忘记了密码无法登录 Doris,可以在 FE 的 config 文件中添加 skip_localhost_auth_check=true 参数,并且重启 FE,从而无密码在 Fe 本机通过 root 登录 Doris。
-
- 登录后,可以通过 SET PASSWORD 命令重置密码。
- 3. 任何用户都不能重置 root 用户的密码,除了 root 用户自己。
- 4. `current_user()` 和 `user()`
-
- 用户可以通过 `SELECT current_user()` 和 `SELECT user()` 分别查看 `current_user` 和 `user`。其中 `current_user` 表示当前用户是以哪种身份通过认证系统的,而 `user` 则是用户当前实际的 User Identity。
-
- 举例说明:
-
- 假设创建了 `user1@'192.%'` 这个用户,然后以为来自 `192.168.10.1` 的用户 `user1` 登录了系统,则此时的 `current_user` 为 `user1@'192.%'`,而 `user` 为 `user1@'192.168.10.1'`。
-
- 所有的权限都是赋予某一个 `current_user` 的,真实用户拥有对应的 `current_user` 的所有权限。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/data.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/data.md
deleted file mode 100644
index 76adc3e3c2e2c..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/data.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-{
-"title": "数据访问控制",
-"language": "zh-CN"
-}
----
-
-## 行权限
-
-使用 Doris 中的行级策略,您可以对敏感数据进行精细访问控制。您可以根据在表级别定义的安全策略,来决定哪些用户或角色可以访问表中数据的特定记录。
-
-### 机制
-
-相当于为配置了 Row Policy 的用户在查询时自动加上 Row Policy 中设置的谓词
-
-### 限制
-
-不能为默认用户 root 和 admin 设置 Row Policy
-
-### 相关命令
-- 查看行权限策略 [SHOW ROW POLICY](../../../../sql-manual/sql-statements/data-governance/SHOW-ROW-POLICY)
-- 创建行权限策略 [CREATE ROW POLICY](../../../../sql-manual/sql-statements/data-governance/CREATE-ROW-POLICY)
-### 行权限示例
-1. 限制 test 用户仅能查询 table1 表中 c1='a' 的数据
-
-```sql
-CREATE ROW POLICY test_row_policy_1 ON test.table1
-AS RESTRICTIVE TO test USING (c1 = 'a');
-```
-## 列权限
-使用 Doris 中的列权限,您可以对表进行精细访问控制。您可以只授予一个表中特定列的权限,来决定哪些用户或角色可以访问表的特定列
-
-目前列权限仅支持 Select_priv
-
-### 相关命令
-- 授权:[GRANT](../../../../sql-manual/sql-statements/account-management/GRANT-TO)
-- 回收权限: [REVOKE](../../../../sql-manual/sql-statements/account-management/REVOKE-FROM)
-
-### 列权限示例
-
-1. 授权 user1 查询 tbl 表的列:col1,col2.
-```sql
-GRANT Select_priv(col1,col2) ON ctl.db.tbl TO user1
-```
-
-## 数据脱敏
-数据脱敏是一种保护敏感数据的方法,它通过对原始数据进行修改、替换或隐藏,使得脱敏后的数据在保持一定格式和特性的同时,不再包含敏感信息。
-
-例如,管理员可以选择将信用卡号、身份证号等敏感字段的部分或全部数字替换为星号 * 或其他字符,或者将真实姓名替换为假名。
-
-从 2.1.2 版本开始,支持通过 Apache Ranger 的 Data Masking 来为某些列设置脱敏策略,目前仅支持通过 [Apache Ranger](./ranger)来设置
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/internal.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/internal.md
deleted file mode 100644
index 7b975ec18178c..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/internal.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-{
-"title": "内置鉴权",
-"language": "zh-CN"
-}
----
-
-## 关键概念
-
-鉴权是指根据用户身份限制其访问和操作 Doris 资源的机制。
-
-Doris 基于 RBAC(Role-Based Access Control)的权限管理模型进行权限控制。
-
-### 权限
-
-权限作用的对象是节点、数据目录、数据库或表。不同的权限代表不同的操作许可。
-
-#### 所有权限
-
-| 权限 | 对象类型 | 描述 |
-|----------------| --------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Admin_priv | Global | 超管权限。 |
-| Node_priv | Global | 节点变更权限。包括 FE、BE、BROKER 节点的添加、删除、下线等操作。 |
-| Grant_priv | Global,Catalog,Db,Table,Resource,Workload Group | 权限变更权限。允许执行包括授权、撤权、添加/删除/变更 用户/角色 等操作。
给其他用户/角色授权时,2.1.2 版本之前,当前用户只需要相应层级的 Grant_priv 权限,2.1.2 版本之后当前用户也要有想要授权的资源的权限。
给其他用户分配角色时,要有 Global 级别的 Grant_priv 权限。 |
-| Select_priv | Global,Catalog,Db,Table,Column | 对数据目录、数据库、表、列的只读权限。 |
-| Load_priv | Global,Catalog,Db,Table | 对数据目录、数据库、表的写权限。包括 Load、Insert、Delete 等。 |
-| Alter_priv | Global,Catalog,Db,Table | 对数据目录、数据库、表的更改权限。包括重命名 库/表、添加/删除/变更 列、添加/删除 分区等操作。 |
-| Create_priv | Global,Catalog,Db,Table | 创建数据目录、数据库、表、视图的权限。 |
-| Drop_priv | Global,Catalog,Db,Table | 删除数据目录、数据库、表、视图的权限。 |
-| Usage_priv | Resource,Workload Group | Resource 和 Workload Group 的使用权限。 |
-| Show_view_priv | Global,Catalog,Db,Table | 执行 SHOW CREATE VIEW 的权限。 |
-
-### 角色
-
-Doris 可以创建自定义命名的角色。角色可以被看做是一组权限的集合。新创建的用户可以被赋予某一角色,则自动被赋予该角色所拥有的权限。后续对角色的权限变更,也会体现在所有属于该角色的用户权限上。
-
-#### 内置角色
-
-内置角色是 Doris 默认创建的角色,并默认拥有一定的权限,包括 operator 和 admin。
-
-- operator : 拥有 Admin_priv 和 Node_priv
-- admin: 拥有 Admin_priv
-
-### 用户
-
-在 Doris 中,一个 user_identity 唯一标识一个用户。user_identity 由两部分组成,user_name 和 host,其中 username 为用户名。host 标识用户端连接所在的主机地址。
-
-## 鉴权机制
-
-Doris 权限设计基于 RBAC(Role-Based Access Control)的权限管理模型,用户和角色关联,角色和权限关联,用户通过角色间接和权限关联。
-
-当角色被删除时,用户自动失去该角色的所有权限。
-
-当用户和角色取消关联,用户自动失去角色的所有权限。
-
-当角色的权限被增加或删除,用户的权限也会随之变更。
-
-```
-┌────────┐ ┌────────┐ ┌────────┐
-│ user1 ├────┬───► role1 ├────┬────► priv1 │
-└────────┘ │ └────────┘ │ └────────┘
- │ │
- │ │
- │ ┌────────┐ │
- │ │ role2 ├────┤
-┌────────┐ │ └────────┘ │ ┌────────┐
-│ user2 ├────┘ │ ┌─► priv2 │
-└────────┘ │ │ └────────┘
- ┌────────┐ │ │
- ┌──────► role3 ├────┘ │
- │ └────────┘ │
- │ │
- │ │
-┌────────┐ │ ┌────────┐ │ ┌────────┐
-│ userN ├─┴──────► roleN ├───────┴─► privN │
-└────────┘ └────────┘ └────────┘
-```
-
-如上图所示:
-
-user1 和 user2 都是通过 role1 拥有了 priv1 的权限。
-
-userN 通过 role3 拥有了 priv1 的权限,通过 roleN 拥有了 priv2 和 privN 的权限,因此 userN 同时拥有 priv1,priv2 和 privN 的权限。
-
-
-### 注意事项
-
-- 为了方便用户操作,是可以直接给用户授权的,底层实现上,是为每个用户创建了一个专属于该用户的默认角色,当给用户授权时,实际上是在给该用户的默认角色授权。
-- 默认角色不能被删除,不能被分配给其他人,删除用户时,默认角色也自动删除。
-
-## 相关命令
-- 授权/分配角色:[GRANT](../../../../sql-manual/sql-statements/account-management/GRANT-TO)
-- 撤权/撤销角色:[REVOKE](../../../../sql-manual/sql-statements/account-management/REVOKE-FROM)
-- 创建角色:[CREATE ROLE](../../../../sql-manual/sql-statements/account-management/CREATE-ROLE)
-- 删除角色:[DROP ROLE](../../../../sql-manual/sql-statements/account-management/DROP-ROLE)
-- 修改角色:[ALTER ROLE](../../../../sql-manual/sql-statements/account-management/ALTER-ROLE)
-- 查看当前用户权限和角色:[SHOW GRANTS](../../../../sql-manual/sql-statements/account-management/SHOW-GRANTS)
-- 查看所有用户权限和角色:[SHOW ALL GRANTS](../../../../sql-manual/sql-statements/account-management/SHOW-GRANTS)
-- 查看已创建的角色:[SHOW ROLES](../../../../sql-manual/sql-statements/account-management/SHOW-ROLES)
-- 查看支持的所有权限项:[SHOW PRIVILEGES](../../../../sql-manual/sql-statements/account-management/SHOW-PRIVILEGES)
-
-## 最佳实践
-
-这里举例一些 Doris 权限系统的使用场景。
-
-1. 场景一
-
- Doris 集群的使用者分为管理员(Admin)、开发工程师(RD)和用户(Client)。其中管理员拥有整个集群的所有权限,主要负责集群的搭建、节点管理等。开发工程师负责业务建模,包括建库建表、数据的导入和修改等。用户访问不同的数据库和表来获取数据。
-
- 在这种场景下,可以为管理员赋予 ADMIN 权限或 GRANT 权限。对 RD 赋予对任意或指定数据库表的 CREATE、DROP、ALTER、LOAD、SELECT 权限。对 Client 赋予对任意或指定数据库表 SELECT 权限。同时,也可以通过创建不同的角色,来简化对多个用户的授权操作。
-
-2. 场景二
-
- 一个集群内有多个业务,每个业务可能使用一个或多个数据。每个业务需要管理自己的用户。在这种场景下。管理员用户可以为每个数据库创建一个拥有 DATABASE 层级 GRANT 权限的用户。该用户仅可以对用户进行指定的数据库的授权。
-
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/ranger.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/ranger.md
deleted file mode 100644
index 6d38a05e7c373..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/authorization/ranger.md
+++ /dev/null
@@ -1,197 +0,0 @@
----
-{
-"title": "Ranger 鉴权",
-"language": "zh-CN"
-}
----
-
-Apache Ranger 是一个用来在 Hadoop 平台上进行监控,启用服务,以及全方位数据安全访问管理的安全框架。
-使用 ranger 后,会通过在 Ranger 侧配置权限代替在 Doris 中执行 Grant 语句授权。
-Ranger 的安装和配置见下文:安装和配置 Doris Ranger 插件
-
-## Ranger 示例
-### 更改 Doris 配置
-1. 在 fe/conf/fe.conf 文件中配置鉴权方式为 ranger access_controller_type=ranger-doris
-2. 在 fe/conf/ranger-doris-security.xml 文件中配置 ranger 基本信息
-3. 启动集群
-### 权限示例
-1. 在 Doris 中创建 `user1`。
-2. 在 Doris 中,先使用 `admin` 用户创建一个 Catalog:`hive`。
-3. 在 Ranger 中创建 `user1`。
-
-#### 全局权限
-相当于 Doris 内部授权语句的 `grant select_priv on *.*.* to user1`;
-- catalog 同级下拉框可以找到 global 选项
-- 输入框里只能输入 `*`
-
- 
-
-#### Catalog 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.*.* to user1`;
-
-
-
-#### Database 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.tpch.* to user1`;
-
-
-
-#### Table 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.tpch.user to user1`;
-
-
-
-#### 列权限
-相当于 Doris 内部授权语句的 `grant select_priv(name,age) on hive.tpch.user to user1`;
-
-
-
-#### Resource 权限
-相当于 Doris 内部授权语句的 `grant usage_priv on resource 'resource1' to user1`;
-- catalog 同级下拉框可以找到 resource 选项
-
-
-
-#### Workload Group 权限
-相当于 Doris 内部授权语句的 `grant usage_priv on workload group 'group1' to user1`;
-- catalog 同级下拉框可以找到 workload group 选项
-
-
-
-### 行权限示例
-
-> 2.1.3 版本支持
-
-1. 参考 权限示例 给 user1 分配 internal.db1.user 表的 select 权限。
-2. 在 Ranger 中添加一个 Row Level Filter policy
-
- 
-
-3. 使用 user1 登录 Doris。执行 `select * from internal.db1.user`,只能看到满足 `id > 3` 且 `age = 2` 的数据。
-
-### 数据脱敏示例
-
-> 2.1.3 版本支持
-
-1. 参考 权限示例 给 user1 分配 internal.db1.user 表的 select 权限。
-2. 在 Ranger 中添加一个 Masking policy
-
- 
-
-3. 使用 user1 登录 Doris。执行 `select * from internal.db1.user`,看到的 phone 是按照指定规则脱敏后的数据。
-## 常见问题
-1. ranger 访问失败,怎么查看日志
- 在所有 FE 的 conf 目录创建 log4j.properties 文件,内容如下:
-
- ```
- log4j.rootLogger = warn,stdout,D
-
- log4j.appender.stdout = org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target = System.out
- log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
-
- log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.D.File = /path/to/fe/log/ranger.log
- log4j.appender.D.Append = true
- log4j.appender.D.Threshold = INFO
- log4j.appender.D.layout = org.apache.log4j.PatternLayout
- log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
- ```
-
- 其中 `log4j.appender.D.File` 改为实际值,用于存放 Ranger 插件的日志。
-## 安装和配置 Doris Ranger 插件
-### 安装插件
-
-1. 下载以下文件
-
- - [ranger-doris-plugin-3.0.0-SNAPSHOT.jar](https://selectdb-doris-1308700295.cos.ap-beijing.myqcloud.com/ranger/ranger-doris-plugin-3.0.0-SNAPSHOT.jar)
- - [mysql-connector-java-8.0.25.jar](https://selectdb-doris-1308700295.cos.ap-beijing.myqcloud.com/release/jdbc_driver/mysql-connector-java-8.0.25.jar)
-
-2. 将下载好的文件放到 Ranger 服务的 `ranger-plugins/doris` 目录下,如:
-
- ```
- /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/ranger-doris-plugin-3.0.0-SNAPSHOT.jar
- /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/mysql-connector-java-8.0.25.jar
- ```
-
-3. 重启 Ranger 服务。
-
-4. 下载 [ranger-servicedef-doris.json](https://github.com/morningman/ranger/blob/doris-plugin/agents-common/src/main/resources/service-defs/ranger-servicedef-doris.json)
-
-5. 执行以下命令上传定义文件到 Ranger 服务:
-
- ```
- curl -u user:password -X POST \
- -H "Accept: application/json" \
- -H "Content-Type: application/json" \
- http://172.21.0.32:6080/service/plugins/definitions \
- -d@ranger-servicedef-doris.json
- ```
-
- 其中用户名密码是登录 Ranger WebUI 所使用的用户名密码。
-
- 服务地址端口可以再 `ranger-admin-site.xml` 配置文件的 `ranger.service.http.port` 配置项查看。
-
- 如执行成功,会返回 Json 格式的服务定义,如:
-
- ```
- {
- "id": 207,
- "guid": "d3ff9e41-f9dd-4217-bb5f-3fa9996454b6",
- "isEnabled": true,
- "createdBy": "Admin",
- "updatedBy": "Admin",
- "createTime": 1705817398112,
- "updateTime": 1705817398112,
- "version": 1,
- "name": "doris",
- "displayName": "Apache Doris",
- "implClass": "org.apache.ranger.services.doris.RangerServiceDoris",
- "label": "Doris",
- "description": "Apache Doris",
- "options": {
- "enableDenyAndExceptionsInPolicies": "true"
- },
- ...
- }
- ```
-
- 如想重新创建,则可以使用以下命令删除服务定义后,再重新上传:
-
- ```
- curl -v -u user:password -X DELETE \
- http://172.21.0.32:6080/service/plugins/definitions/207
- ```
-
- 其中 `207` 是创建时返回的 id。删除前,需在 Ranger WebUI 界面删除已创建的 Doris 服务。
-
- 也可以通过以下命令列举当前已添加的服务定义,以便获取 id:
-
- ```
- curl -v -u user:password -X GET \
- http://172.21.0.32:6080/service/plugins/definitions/
- ```
-### 配置插件
-
-安装完毕后,打开 Ranger WebUI,可以再 Service Manger 界面中看到 Apache Doris 插件:
-
-
-
-点击插件旁边的 `+` 号添加一个 Doris 服务:
-
-
-
-Config Properties 部分参数含义如下:
-
-- `Username`/`Pasword`:Doris 集群的用户名密码,这里建议使用 Admin 用户。
-- `jdbc.driver_class`:连接 Doris 使用的 JDBC 驱动。`com.mysql.cj.jdbc.Driver`
-- `jdbc.url`:Doris 集群的 JDBC url 连接串。`jdbc:mysql://172.21.0.101:9030?useSSL=false`
-- 额外参数:
- - `resource.lookup.timeout.value.in.ms`:获取元信息的超时时间,建议填写 `10000`,即 10 秒。
-
-可以点击 `Test Connection` 检查是否可以联通。
-
-之后点击 `Add` 添加服务。
-
-之后,可以在 Service Manger 界面的 Apache Doris 插件中看到创建的服务,点击服务,即可开始配置 Ranger。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/certificate.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/certificate.md
deleted file mode 100644
index ecaa4a712c84c..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/certificate.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-{
- "title": "MySQL 安全传输",
- "language": "zh-CN"
-}
----
-
-Doris 开启 SSL 功能需要配置 CA 密钥证书和 Server 端密钥证书,如需开启双向认证,还需生成 Client 端密钥证书:
-
-* 默认的 CA 密钥证书文件位于`Doris/fe/mysql_ssl_default_certificate/ca_certificate.p12`,默认密码为`doris`,您可以通过修改 FE 配置文件`conf/fe.conf`,添加`mysql_ssl_default_ca_certificate = /path/to/your/certificate`修改 CA 密钥证书文件,同时也可以通过`mysql_ssl_default_ca_certificate_password = your_password`添加对应您自定义密钥证书文件的密码。
-
-* 默认的 Server 端密钥证书文件位于`Doris/fe/mysql_ssl_default_certificate/server_certificate.p12`,默认密码为`doris`,您可以通过修改 FE 配置文件`conf/fe.conf`,添加`mysql_ssl_default_server_certificate = /path/to/your/certificate`修改 Server 端密钥证书文件,同时也可以通过`mysql_ssl_default_server_certificate_password = your_password`添加对应您自定义密钥证书文件的密码。
-
-* 默认生成了一份 Client 端的密钥证书,分别存放在`Doris/fe/mysql_ssl_default_certificate/client-key.pem`和`Doris/fe/mysql_ssl_default_certificate/client_certificate/`。
-
-## 自定义密钥证书文件
-
-除了 Doris 默认的证书文件,您也可以通过`openssl`生成自定义的证书文件。步骤参考[MySQL 生成 SSL 证书](https://dev.mysql.com/doc/refman/8.0/en/creating-ssl-files-using-openssl.html)
-具体如下:
-
-1. 生成 CA、Server 端和 Client 端的密钥和证书
-
-```shell
-# 生成 CA certificate
-openssl genrsa 2048 > ca-key.pem
-openssl req -new -x509 -nodes -days 3600 \
- -key ca-key.pem -out ca.pem
-
-# 生成 server certificate, 并用上述 CA 签名
-# server-cert.pem = public key, server-key.pem = private key
-openssl req -newkey rsa:2048 -days 3600 \
- -nodes -keyout server-key.pem -out server-req.pem
-openssl rsa -in server-key.pem -out server-key.pem
-openssl x509 -req -in server-req.pem -days 3600 \
- -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
-
-# 生成 client certificate, 并用上述 CA 签名
-# client-cert.pem = public key, client-key.pem = private key
-openssl req -newkey rsa:2048 -days 3600 \
- -nodes -keyout client-key.pem -out client-req.pem
-openssl rsa -in client-key.pem -out client-key.pem
-openssl x509 -req -in client-req.pem -days 3600 \
- -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
-```
-
-2. 验证创建的证书。
-
-```shell
-openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
-```
-
-3. 将您的 CA 密钥和证书和 Server 端密钥和证书分别合并到 PKCS#12 (P12) 包中。您也可以指定某个证书格式,默认 PKCS12,可以通过修改 conf/fe.conf 配置文件,添加参数 ssl_trust_store_type 指定证书格式
-
-```shell
-# 打包 CA 密钥和证书
-openssl pkcs12 -inkey ca-key.pem -in ca.pem -export -out ca_certificate.p12
-
-# 打包 Server 端密钥和证书
-openssl pkcs12 -inkey server-key.pem -in server-cert.pem -export -out server_certificate.p12
-```
-
-:::info Note
-[参考文档](https://www.ibm.com/docs/en/api-connect/2018.x?topic=overview-generating-self-signed-certificate-using-openssl)
-:::
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/encryption-function.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/encryption-function.md
deleted file mode 100644
index 06d2df6fcf47d..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/encryption-function.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-{
- "title": "加密和脱敏函数",
- "language": "zh-CN"
-}
----
-
-Doris 内置了如下加密和脱敏函数。详细用法请参考 SQL 手册。
-
-- [AES_ENCRYPT](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/aes-encrypt)
-- [AES_DECRYPT](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/aes-decrypt)
-- [SM4_ENCRYPT](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-encrypt)
-- [SM4_DECRYPT](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm4-decrypt)
-- [MD5](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/md5)
-- [MD5SUM](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/md5sum)
-- [SM3](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm3)
-- [SM3SUM](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sm3sum)
-- [SHA](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sha)
-- [SHA2](../../../sql-manual/sql-functions/scalar-functions/encrypt-digest-functions/sha2)
-- [DIGITAL_MASKING](../../../sql-manual/sql-functions/scalar-functions/string-functions/digital-masking)
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/fe-certificate.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/fe-certificate.md
deleted file mode 100644
index 5ea03f58f9085..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/fe-certificate.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-{
- "title": "HTTP 安全传输",
- "language": "zh-CN"
-}
----
-
-:::tip
-
-从 2.0 版本开始,Doris 支持 SSL 密钥和证书配置
-:::
-
-
-Doris FE 接口开启 SSL 功能需要配置密钥证书,步骤如下:
-
-1. 购买或生成自签名 SSL 证书,生产环境建议使用 CA 颁发的证书
-
-2. 将 SSL 证书复制到指定路径下,默认路径为 `${DORIS_HOME}/conf/ssl/`,用户也可以自己指定路径
-
-3. 修改 FE 配置文件 `conf/fe.conf`,注意以下参数与购买或生成的 SSL 证书保持一致
-
- - 设置 `enable_https = true` 开启 https 功能,默认为 `false`
-
- - 设置证书路径 `key_store_path`,默认为 `${DORIS_HOME}/conf/ssl/doris_ssl_certificate.keystore`
-
- - 设置证书密码 `key_store_password`,默认为空
-
- - 设置证书类型 `key_store_type` ,默认为 `JKS`
-
- - 设置证书别名 `key_store_alias`,默认为 `doris_ssl_certificate`
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ldap.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ldap.md
deleted file mode 100644
index 15a1b268b00b3..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ldap.md
+++ /dev/null
@@ -1,264 +0,0 @@
----
-{
- "title": "基于 LDAP 的用户认证",
- "language": "zh-CN"
-}
----
-
-# LDAP
-
-接入第三方 LDAP 服务为 Doris 提供验证登录和组授权服务。
-
-LDAP 验证登录指的是接入 LDAP 服务的密码验证来补充 Doris 的验证登录。Doris 优先使用 LDAP 验证用户密码,如果 LDAP 服务中不存在该用户则继续使用 Doris 验证密码,如果 LDAP 密码正确但是 Doris 中没有对应账户则创建临时用户登录 Doris。
-
-LDAP 组授权是将 LDAP 中的 group 映射到 Doris 中的 Role,如果用户在 LDAP 中属于多个用户组,登录 Doris 后用户将获得所有组对应 Role 的权限,要求组名与 Role 名字相同。
-
-## 名词解释
-
-- LDAP:轻量级目录访问协议,能够实现账号密码的集中管理。
-- 权限 Privilege:权限作用的对象是节点、数据库或表。不同的权限代表不同的操作许可。
-- 角色 Role:Doris 可以创建自定义命名的角色。角色可以被看做是一组权限的集合。
-
-## LDAP 相关概念
-
-在 LDAP 中,数据是按照树型结构组织的。
-
-### 示例(下文的介绍都将根据这个例子进行展开)
-
-```
-- dc=example,dc=com
- - ou = ou1
- - cn = group1
- - cn = user1
- - ou = ou2
- - cn = group2
- - cn = user2
- - cn = user3
-```
-
-### LDAP 名词解释
-
-- dc(Domain Component): 可以理解为一个组织的域名,作为树的根结点
-- dn(Distinguished Name): 相当于唯一名称,例如 user1 的 dn 为 cn=user1,ou=ou1,dc=example,dc=com user2 的 dn 为 cn=user2,cn=group2,ou=ou2,dc=example,dc=com
-- rdn(Relative Distinguished Name): dn 的一部分,user1 的四个 rdn 为 cn=user1 ou=ou1 dc=example 和 dc=com
-- ou(Organization Unit): 可以理解为子组织,user 可以放在 ou 中,也可以直接放在 example.com 域中
-- cn(common name):名字
-- group: 组,可以理解为 doris 的角色
-- user: 用户,和 doris 的用户等价
-- objectClass:可以理解为每行数据的类型,比如怎么区分 group1 是 group 还是 user,每种类型的数据下面要求有不同的属性,比如 group 要求有 cn 和 member(user 列表),user 要求有 cn,password,uid 等
-
-## 启用 LDAP 认证
-
-### server 端配置
-
-在 `fe/conf/fe.conf` 文件中配置认证方式为 ldap `authentication_type=ldap`。
-
-在 `fe/conf/ldap.conf` 文件中配置 LDAP 基本信息,
-
-另有 LDAP 管理员密码需要使用 sql 语句进行设置。
-
-#### 配置 `fe/conf/ldap.conf` 文件
-
-- `ldap_host = 127.0.0.1`
-
- LDAP 服务 ip。
-
-- `ldap_port = 389`
-
- LDAP 服务端口,默认明文传输端口为 389,目前 Doris 的 LDAP 功能仅支持明文密码传输。
-
-- `ldap_admin_name = cn=admin,dc=domain,dc=com`
-
- LDAP 管理员账户“Distinguished Name”。当用户使用 LDAP 身份验证 Doris 时,Doris 会绑定该管理员账户在 LDAP 中搜索用户信息。
-
-- `ldap_user_basedn = ou=people,dc=domain,dc=com`
-
- Doris 在 LDAP 中搜索用户信息时的 base dn,例如只允许上例中的 user2 登陆 Doris,此处配置为 ou=ou2,dc=example,dc=com 如果允许上例中的 user1,user2,user3 都能登陆 Doris,此处配置为 dc=example,dc=com
-
-- `ldap_user_filter = (&(uid={login}))`
-
- Doris 在 LDAP 中搜索用户信息时的过滤条件,占位符 `{login}` 会被替换为登录用户名。必须保证通过该过滤条件搜索的用户唯一,否则 Doris 无法通过 LDAP 验证密码,登录时会出现 `ERROR 5081 (42000): user is not unique in LDAP server.` 的错误信息。
-
- 例如使用 LDAP 用户节点 uid 属性作为登录 Doris 的用户名可以配置该项为:
-
- `ldap_user_filter = (&(uid={login}))`
-
- 使用 LDAP 用户邮箱前缀作为用户名可配置该项:
-
- `ldap_user_filter = (&(mail={login}@baidu.com))`
-
-- `ldap_group_basedn = ou=group,dc=domain,dc=com`
-
- Doris 在 LDAP 中搜索组信息时的 base dn。如果不配置该项,将不启用 LDAP 组授权。同 `ldap_user_basedn` 类似,限制 doris 搜索 group 时的范围。
-
-#### 设置 LDAP 管理员密码
-
-配置好 ldap.conf 文件后启动 fe,使用 root 或 admin 账号登录 Doris,执行 sql:
-
-```sql
-set ldap_admin_password = password('ldap_admin_password');
-```
-
-### Client 端配置
-
-#### MySql Client
-
-客户端使用 LDAP 验证需要启用 mysql 客户端明文验证插件,使用命令行登录 Doris 可以使用下面两种方式之一启用 mysql 明文验证插件:
-
-- 设置环境变量 `LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN` 值 1
-
- 例如在 linux 或者 mac 环境中可以使用:
-
- ```shell
- echo "export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1" >> ~/.bash_profile && source ~/.bash_profile
- ```
-
-- 每次登录 Doris 时添加参数 `--enable-cleartext-plugin`
-
- ```shell
- mysql -hDORIS_HOST -PDORIS_PORT -u user -p --enable-cleartext-plugin
-
- 输入 ldap 密码
- ```
-#### Jdbc Client
-
-使用 Jdbc Client 登录 Doris 时,需要自定义 plugin。
-
-首先,创建一个名为 MysqlClearPasswordPluginWithoutSSL 的类,继承自 MysqlClearPasswordPlugin。在该类中,重写 requiresConfidentiality() 方法,并返回 false。
-
-``` java
-public class MysqlClearPasswordPluginWithoutSSL extends MysqlClearPasswordPlugin {
-@Override
-public boolean requiresConfidentiality() {
- return false;
- }
-}
-```
-在获取数据库连接时,需要将自定义的 plugin 配置到属性中
-
-即(xxx 为自定义类的包名)
-- authenticationPlugins=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL
-- defaultAuthenticationPlugin=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL
-- disabledAuthenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin
-
-eg:
-```sql
- jdbcUrl = "jdbc:mysql://localhost:9030/mydatabase?authenticationPlugins=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL&defaultAuthenticationPlugin=xxx.xxx.xxx.MysqlClearPasswordPluginWithoutSSL&disabledAuthenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin";
-
-```
-
-## LDAP 认证详解
-
-LDAP 密码验证和组授权是 Doris 密码验证和授权的补充,开启 LDAP 功能并不能完全替代 Doris 的密码验证和授权,而是与 Doris 密码验证和授权并存。
-
-### LDAP 验证登录详解
-
-开启 LDAP 后,用户在 Doris 和 LDAP 中存在以下几种情况:
-
-| LDAP 用户 | Doris 用户 | 密码 | 登录情况 | 登录 Doris 的用户 |
-| -------- | --------- | --------- | -------- | --------------- |
-| 存在 | 存在 | LDAP 密码 | 登录成功 | Doris 用户 |
-| 存在 | 存在 | Doris 密码 | 登录失败 | 无 |
-| 不存在 | 存在 | Doris 密码 | 登录成功 | Doris 用户 |
-| 存在 | 不存在 | LDAP 密码 | 登录成功 | Ldap 临时用户 |
-
-开启 LDAP 后,用户使用 mysql client 登录时,Doris 会先通过 LDAP 服务验证用户密码,如果 LDAP 存在用户且密码正确,Doris 则使用该用户登录;此时 Doris 若存在对应账户则直接登录该账户,如果不存在对应账户则为用户创建临时账户并登录该账户。临时账户具有具有相应对权限(参见 LDAP 组授权),仅对当前连接有效,Doris 不会创建该用户,也不会产生创建用户对元数据。
-如果 LDAP 服务中不存在登录用户,则使用 Doris 进行密码认证。
-
-以下假设已开启 LDAP 认证,配置 ldap_user_filter = (&(uid={login})),且其他配置项都正确,客户端设置环境变量 LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1
-
-例如:
-
-1. Doris 和 LDAP 中都存在账户:
-
- 存在 Doris 账户:`jack@'172.10.1.10'`,密码:`123456`
-
- LDAP 用户节点存在属性:`uid: jack` 用户密码:`abcdef`
-
- 使用以下命令登录 Doris 可以登录 `jack@'172.10.1.10'` 账户:
-
- ```shell
- mysql -hDoris_HOST -PDoris_PORT -ujack -p abcdef
- ```
-
- 使用以下命令将登录失败:
-
- ```shell
- mysql -hDoris_HOST -PDoris_PORT -ujack -p 123456
- ```
-
-2. LDAP 中存在用户,Doris 中不存在对应账户:
-
- LDAP 用户节点存在属性:`uid: jack` 用户密码:`abcdef`
-
- 使用以下命令创建临时用户并登录 jack@'%',临时用户具有基本权限 DatabasePrivs:Select_priv,用户退出登录后 Doris 将删除该临时用户:
-
- ```shell
- mysql -hDoris_HOST -PDoris_PORT -ujack -p abcdef
- ```
-
-3. LDAP 不存在用户:
-
- 存在 Doris 账户:`jack@'172.10.1.10'`,密码:`123456`
-
- 使用 Doris 密码登录账户,成功:
-
- ```shell
- mysql -hDoris_HOST -PDoris_PORT -ujack -p 123456
- ```
-
-### LDAP 组授权详解
-
-LDAP 用户 dn 是 LDAP 组节点的“member”属性则 Doris 认为用户属于该组。LDAP 组授权是将 LDAP 中的 group 映射到 Doris 中的 role,并将所有对应的 role 权限授予登录用户,用户退出登录后 Doris 会撤销对应的 role 权限。在使用 LDAP 组授权前应该在 Doris 中创建相应的 role,并为 role 授权。
-
-登录用户权限跟 Doris 用户和组权限有关,见下表:
-
-| LDAP 用户 | Doris 用户 | 登录用户的权限 |
-| -------- | --------- | -------------------------- |
-| 存在 | 存在 | LDAP 组权限 + Doris 用户权限 |
-| 不存在 | 存在 | Doris 用户权限 |
-| 存在 | 不存在 | LDAP 组权限 |
-
-如果登录的用户为临时用户,且不存在组权限,则该用户默认具有 information_schema 的 select_priv 权限
-
-举例:
-
-LDAP 用户 dn 是 LDAP 组节点的 `member` 属性则认为用户属于该组,Doris 会截取组 dn 的第一个 Rdn 作为组名。
-
-例如用户 dn 为 `uid=jack,ou=aidp,dc=domain,dc=com`,组信息如下:
-
-```text
-dn: cn=doris_rd,ou=group,dc=domain,dc=com
-objectClass: groupOfNames
-member: uid=jack,ou=aidp,dc=domain,dc=com
-```
-
-则组名为 `doris_rd`。
-
-假如 jack 还属于 LDAP 组 `doris_qa`、`doris_pm`;Doris 存在 role:`doris_rd`、`doris_qa`、`doris_pm`,在使用 LDAP 验证登录后,用户不但具有该账户原有的权限,还将获得 role `doris_rd`、`doris_qa` 和 `doris_pm` 的权限。
-
->注意:
->
-> user 属于哪个 group 和 LDAP 树的组织结构无关,示例部分的 user2 并不一定属于 group2
-> 若想让 user2 属于 group2,需要在 group2 的 member 属性中添加 user2
-
-### LDAP 信息缓存
-
-为了避免频繁访问 LDAP 服务,Doris 会将 LDAP 信息缓存到内存中,可以通过 ldap.conf 中的`ldap_user_cache_timeout_s`配置项指定 LDAP 用户的缓存时间,默认为 12 小时;在修改了 LDAP 服务中的信息或者修改了 Doris 中 LDAP 用户组对应的 Role 权限后,可能因为缓存而没有及时生效,可以通过 refresh ldap 语句刷新缓存,详细查看[REFRESH-LDAP](../../../sql-manual/sql-statements/account-management/REFRESH-LDAP)。
-
-## LDAP 验证的局限
-
-- 目前 Doris 的 LDAP 功能只支持明文密码验证,即用户登录时,密码在 client 与 fe 之间、fe 与 LDAP 服务之间以明文的形式传输。
-
-## 常见问题
-
-- 怎么判断 LDAP 用户在 Doris 中有哪些角色?
-
- 使用 LDAP 用户在 doris 中登录,`show grants;`能查看当前用户有哪些角色。其中 ldapDefaultRole 是每个 ldap 用户在 doris 中都有的默认角色。
-
-- LDAP 用户在 Doris 中的角色比预期少怎么排查?
-
- 1. 通过`show roles;`查看预期的角色在 doris 中是否存在,如果不存在,需要通过` CREATE ROLE role_name;`创建角色。
- 2. 检查预期的 group 是否在`ldap_group_basedn`对应的组织结构下。
- 3. 检查预期 group 是否包含 member 属性。
- 4. 检查预期 group 的 member 属性是否包含当前用户。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ranger.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ranger.md
deleted file mode 100644
index ed7b247e92f68..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/ranger.md
+++ /dev/null
@@ -1,284 +0,0 @@
----
-{
- "title": "基于 Apache Ranger 的鉴权管理",
- "language": "zh-CN"
-}
----
-
-Apache Ranger 是一个用来在 Hadoop 平台上进行监控,启用服务,以及全方位的数据安全访问管理的安全框架。
-
-在 2.1.0 版本中,Doris 支持通过集成 Apache Ranger,进行统一的权限管理。
-
-> 注意:
->
-> - 目前该功能是实验性功能,在 Ranger 中可配置的资源对象和权限可能会在之后的版本中有所变化。
->
-> - Apache Ranger 版本需在 2.4.0 以上。
-
-## 安装步骤
-
-### 安装 Doris Ranger 插件
-
-1. 下载以下文件
-
- - [ranger-doris-plugin-3.0.0-SNAPSHOT.jar](https://selectdb-doris-1308700295.cos.ap-beijing.myqcloud.com/ranger/ranger-doris-plugin-3.0.0-SNAPSHOT.jar)
- - [mysql-connector-java-8.0.25.jar](https://selectdb-doris-1308700295.cos.ap-beijing.myqcloud.com/release/jdbc_driver/mysql-connector-java-8.0.25.jar)
-
-2. 将下载好的文件放到 Ranger 服务的 `ranger-plugins/doris` 目录下,如:
-
- ```
- /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/ranger-doris-plugin-3.0.0-SNAPSHOT.jar
- /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins/doris/mysql-connector-java-8.0.25.jar
- ```
-
-3. 重启 Ranger 服务。
-
-4. 下载 [ranger-servicedef-doris.json](https://github.com/morningman/ranger/blob/doris-plugin/agents-common/src/main/resources/service-defs/ranger-servicedef-doris.json)
-
-5. 执行以下命令上传定义文件到 Ranger 服务:
-
- ```
- curl -u user:password -X POST \
- -H "Accept: application/json" \
- -H "Content-Type: application/json" \
- http://172.21.0.32:6080/service/plugins/definitions \
- -d@ranger-servicedef-doris.json
- ```
-
- 其中用户名密码是登录 Ranger WebUI 所使用的用户名密码。
-
- 服务地址端口可以再 `ranger-admin-site.xml` 配置文件的 `ranger.service.http.port` 配置项查看。
-
- 如执行成功,会返回 Json 格式的服务定义,如:
-
- ```
- {
- "id": 207,
- "guid": "d3ff9e41-f9dd-4217-bb5f-3fa9996454b6",
- "isEnabled": true,
- "createdBy": "Admin",
- "updatedBy": "Admin",
- "createTime": 1705817398112,
- "updateTime": 1705817398112,
- "version": 1,
- "name": "doris",
- "displayName": "Apache Doris",
- "implClass": "org.apache.ranger.services.doris.RangerServiceDoris",
- "label": "Doris",
- "description": "Apache Doris",
- "options": {
- "enableDenyAndExceptionsInPolicies": "true"
- },
- ...
- }
- ```
-
- 如想重新创建,则可以使用以下命令删除服务定义后,再重新上传:
-
- ```
- curl -v -u user:password -X DELETE \
- http://172.21.0.32:6080/service/plugins/definitions/207
- ```
-
- 其中 `207` 是创建时返回的 id。删除前,需在 Ranger WebUI 界面删除已创建的 Doris 服务。
-
- 也可以通过以下命令列举当前已添加的服务定义,以便获取 id:
-
- ```
- curl -v -u user:password -X GET \
- http://172.21.0.32:6080/service/plugins/definitions/
- ```
-
-### 配置 Doris Ranger 插件
-
-安装完毕后,打开 Ranger WebUI,可以再 Service Manger 界面中看到 Apache Doris 插件:
-
-
-
-点击插件旁边的 `+` 号添加一个 Doris 服务:
-
-
-
-Config Properties 部分参数含义如下:
-
-- `Username`/`Pasword`:Doris 集群的用户名密码,这里建议使用 Admin 用户。
-- `jdbc.driver_class`:连接 Doris 使用的 JDBC 驱动。`com.mysql.cj.jdbc.Driver`
-- `jdbc.url`:Doris 集群的 JDBC url 连接串。`jdbc:mysql://172.21.0.101:9030?useSSL=false`
-- 额外参数:
- - `resource.lookup.timeout.value.in.ms`:获取元信息的超时时间,建议填写 `10000`,即 10 秒。
-
-可以点击 `Test Connection` 检查是否可以联通。
-
-之后点击 `Add` 添加服务。
-
-之后,可以在 Service Manger 界面的 Apache Doris 插件中看到创建的服务,点击服务,即可开始配置 Ranger。
-
-### 配置 Doris 集群
-
-1. 在所有 FE 的 conf 目录创建 `ranger-doris-security.xml` 文件,内容如下:
-
- ```
-
-
-
-
- ranger.plugin.doris.policy.cache.dir
- /path/to/ranger/cache/
-
-
- ranger.plugin.doris.policy.pollIntervalMs
- 30000
-
-
- ranger.plugin.doris.policy.rest.client.connection.timeoutMs
- 60000
-
-
- ranger.plugin.doris.policy.rest.client.read.timeoutMs
- 60000
-
-
- ranger.plugin.doris.policy.rest.url
- http://172.21.0.32:6080
-
-
- ranger.plugin.doris.policy.source.impl
- org.apache.ranger.admin.client.RangerAdminRESTClient
-
-
- ranger.plugin.doris.service.name
- doris
-
-
- ```
-
- 其中需要将 `ranger.plugin.doris.policy.cache.dir` 和 `ranger.plugin.doris.policy.rest.url` 改为实际值。
-
-2. 在所有 FE 的 conf 目录创建 `ranger-doris-audit.xml` 文件,内容如下:
-
- ```
-
-
-
-
- ```
-
-3. 在所有 FE 的 conf 目录创建 `log4j.properties` 文件,内容如下:
-
- ```
- log4j.rootLogger = warn,stdout,D
-
- log4j.appender.stdout = org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target = System.out
- log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
-
- log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.D.File = /path/to/fe/log/ranger.log
- log4j.appender.D.Append = true
- log4j.appender.D.Threshold = INFO
- log4j.appender.D.layout = org.apache.log4j.PatternLayout
- log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
- ```
-
- 其中 `log4j.appender.D.File` 改为实际值,用于存放 Ranger 插件的日志。
-
-4. 在所有 FE 的 fe.conf 中添加配置:
-
- `access_controller_type=ranger-doris`
-
-5. 重启所有 FE 节点即可。
-
-## 资源和权限
-
-1. 目前 Ranger 中支持的 Doris 资源包括:
-
- - `Catalog`
- - `Database`
- - `Table`
- - `Column`
- - `Resource`
- - `Workload Group`
-
-2. 目前 Ranger 中支持的 Doris 权限包括:
-
- - `SHOW`
- - `SHOW_VIEW`
- - `SHOW_RESOURCES`
- - `SHOW_WORKLOAD_GROUP`
- - `LOAD`
- - `ALTER`
- - `CREATE`
- - `ALTER_CREATE`
- - `ALTER_CREATE_DROP`
- - `DROP`
- - `SELECT`
- - `USAGE`
-
-## 最佳实践
-
-### 配置权限
-1. 在 Doris 中创建 `user1`。
-2. 在 Doris 中,先使用 `admin` 用户创建一个 Catalog:`hive`。
-3. 在 Ranger 中创建 `user1`。
-
-#### 全局权限
-相当于 Doris 内部授权语句的 `grant select_priv on *.*.* to user1`;
-- catalog 同级下拉框可以找到 global 选项
-- 输入框里只能输入 `*`
-
- 
-
-#### Catalog 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.*.* to user1`;
-
- 
-
-#### Database 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.tpch.* to user1`;
-
-
-
-#### Table 权限
-相当于 Doris 内部授权语句的 `grant select_priv on hive.tpch.user to user1`;
-
-
-
-#### Column 权限
-相当于 Doris 内部授权语句的 `grant select_priv(name,age) on hive.tpch.user to user1`;
-
-
-
-#### Resource 权限
-相当于 Doris 内部授权语句的 `grant usage_priv on resource 'resource1' to user1`;
-- catalog 同级下拉框可以找到 resource 选项
-
-
-
-#### Workload Group 权限
-相当于 Doris 内部授权语句的 `grant usage_priv on workload group 'group1' to user1`;
-- catalog 同级下拉框可以找到 workload group 选项
-
-
-
-### Row Policy 示例
-
-> 2.1.3 版本支持
-
-1. 参考 配置权限 给 user1 分配 internal.db1.user 表的 select 权限。
-2. 在 Ranger 中添加一个 Row Level Filter policy
-
- 
-
-3. 使用 user1 登录 Doris。执行 `select * from internal.db1.user`,只能看到满足 `id > 3` 且 `age = 2` 的数据。
-
-### Data Mask 示例
-
-> 2.1.3 版本支持
-
-1. 参考 配置权限 给 user1 分配 internal.db1.user 表的 select 权限。
-2. 在 Ranger 中添加一个 Masking policy
-
- 
-
-3. 使用 user1 登录 Doris。执行 `select * from internal.db1.user`,看到的 phone 是按照指定规则脱敏后的数据。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/security-overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/security-overview.md
deleted file mode 100644
index 48892a2f4be6d..0000000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/auth/security-overview.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-{
- "title": "安全概览",
- "language": "zh-CN"
-}
----
-
-Doris 提供以下机制管理数据安全:
-
-身份认证:Doris 支持用户名/密码与 LDAP 认证方式。
-
-- 内置认证:Doris 内置了用户名/密码的认证方式,可以自定义密码策略;
-
-- LDAP 认证:Doris 可以通过 LDAP 服务集中管理用户凭证,简化访问控制并增强系统的安全性。
-
-权限管控:Doris 支持基于角色的访问控制或继承 Ranger 实现集中化的权限管理。
-
-- 基于角色的访问控制(RBAC),Doris 可以根据用户角色与权限,限制其对数据库资源的访问与操作;
-
-- Ranger 权限管理:Doris 可以通过集成 Ranger 实现集中化的权限管理,允许管理员为不同的用户和组设置细粒度的访问控制策略。
-
-审计与日志记录:Doris 可以开启审计日志,记录用户的所有操作行为,包括登录,查询,数据修改等行为,便于事后审计与问题追踪;
-
-数据加密与脱敏:Doris 支持对表中的数据进行加密与脱敏,防止未授权的访问造成敏感数据泄漏;
-
-数据传输加密:Doris 支持 SSL 加密协议,确保客户端与 Doris 服务器之间的数据传输安全,防止数据在传输过程中被窃取或篡改;
-
-细粒度访问控制:Doris 中可以基于规则配置数据行/列管控用户访问权限。
-
-JAVA-UDF安全:Doris 支持用户自定义函数功能,所以需要Root 管理员审查用户 UDF 的实现,确保实现逻辑的操作安全,防止在 UDF 中执行高危操作,例如删除数据和破坏系统等。
-
-第三方包:在使用 Doris 的 JDBC Catalog、UDF 等功能时,如需引入第三方包,管理员需自行确保这些包来源安全可信。建议仅使用来自官方渠道或受信任社区的依赖包,以降低安全风险。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authentication-and-authorization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
index e9432c5f777eb..8df42d28cebe1 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
@@ -302,7 +302,11 @@ userN 通过 role3 拥有了 priv1 的权限,通过 roleN 拥有了 priv2 和
- root@'%':root 用户,允许从任意节点登陆,角色为 operator。
- admin@'%':admin 用户,允许从任意节点登陆,角色为 admin。
-2. 不支持删除或更改默认创建的角色或用户的权限。
+2. 不支持删除或更改默认创建的用户,角色或用户的权限。
+ - 不支持删除 root@'%' 和 admin@'%' 用户,但是允许创建和删除 root@'xxx' 和 admin@'xxx' 用户(xxx 指的是除了 % 之外的 host)(Doris 会把这些用户视为普通用户)
+ - 不支持撤销 root@'%' 和 admin@'%' 的默认角色
+ - 不支持删除角色 operator 和 admin
+ - 不支持操作角色 operator 和 admin 的权限
3. operator 角色的用户有且只有一个,即 Root。admin 角色的用户可以创建多个。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authorization/ranger.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authorization/ranger.md
index f586919461899..fc451b94e1db5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authorization/ranger.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/admin-manual/auth/authorization/ranger.md
@@ -147,6 +147,10 @@ Ranger 的安装和配置见下文:安装和配置 Doris Ranger 插件
如图所示,创建服务的时候,添加配置 `default.policy.users` ,如需配置多个用户拥有全部权限,用 `,` 分隔

+4. 使用 ranger 鉴权后,内部授权还有用么?
+
+ 当前 ranger 还无法配置 global 层级的权限, 因此内部授权 grant priv on *.*.* 是有用的,其它层级的授权没有用
+
## 安装和配置 Doris Ranger 插件
### 安装插件
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authentication-and-authorization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
index e9432c5f777eb..8df42d28cebe1 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
@@ -302,7 +302,11 @@ userN 通过 role3 拥有了 priv1 的权限,通过 roleN 拥有了 priv2 和
- root@'%':root 用户,允许从任意节点登陆,角色为 operator。
- admin@'%':admin 用户,允许从任意节点登陆,角色为 admin。
-2. 不支持删除或更改默认创建的角色或用户的权限。
+2. 不支持删除或更改默认创建的用户,角色或用户的权限。
+ - 不支持删除 root@'%' 和 admin@'%' 用户,但是允许创建和删除 root@'xxx' 和 admin@'xxx' 用户(xxx 指的是除了 % 之外的 host)(Doris 会把这些用户视为普通用户)
+ - 不支持撤销 root@'%' 和 admin@'%' 的默认角色
+ - 不支持删除角色 operator 和 admin
+ - 不支持操作角色 operator 和 admin 的权限
3. operator 角色的用户有且只有一个,即 Root。admin 角色的用户可以创建多个。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authorization/ranger.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authorization/ranger.md
index 2a8b8a0d78d99..2774cc4aa0eab 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authorization/ranger.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/admin-manual/auth/authorization/ranger.md
@@ -166,6 +166,10 @@ Ranger 的安装和配置见下文:安装和配置 Doris Ranger 插件
如图所示,创建服务的时候,添加配置 `default.policy.users` ,如需配置多个用户拥有全部权限,用 `,` 分隔

+4. 使用 ranger 鉴权后,内部授权还有用么?
+
+ 不能用,也不能创建/删除角色
+
## 安装和配置 Doris Ranger 插件
### 安装插件
diff --git a/versioned_docs/version-2.1/admin-manual/auth/authentication-and-authorization.md b/versioned_docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
index 09f07153c7be0..6dc2fbe216419 100644
--- a/versioned_docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
+++ b/versioned_docs/version-2.1/admin-manual/auth/authentication-and-authorization.md
@@ -302,8 +302,12 @@ Please refer to [Authorization Scheme Based on Apache Ranger](./ranger.md).
- root@'%': root user, allowed to log in from any node, with the operator role.
- admin@'%': admin user, allowed to log in from any node, with the admin role.
-2. It is not supported to delete or change the permissions of roles or users created by default.
-
+2. Deleting or altering the permissions of default created users, roles, or users is not supported.
+ - Deleting the users root@'%' and admin@'%' is not supported, but creating and deleting root@'xxx' and admin@'xxx' users (where xxx refers to any host except %) is allowed (Doris treats these users as regular users).
+ - Revoking the default roles of root@'%' and admin@'%' is not supported.
+ - Deleting the roles operator and admin is not supported.
+ - Modifying the permissions of the roles operator and admin is not supported.
+
3. There is only one user with the operator role, which is Root. There can be multiple users with the admin role.
4. Some potentially conflicting operations are explained as follows:
diff --git a/versioned_docs/version-2.1/admin-manual/auth/authorization/ranger.md b/versioned_docs/version-2.1/admin-manual/auth/authorization/ranger.md
index 9335603e79df2..8e3fe9ea95c2e 100644
--- a/versioned_docs/version-2.1/admin-manual/auth/authorization/ranger.md
+++ b/versioned_docs/version-2.1/admin-manual/auth/authorization/ranger.md
@@ -148,6 +148,9 @@ Equivalent to the internal Doris authorization statement `grant usage_priv on wo
As shown in the image, when creating the service, add the configuration `default.policy.users`. If you need to configure multiple users with full permissions, separate them with `,`.

+4. After using Ranger for authentication, is internal authorization still effective?
+
+ Currently, Ranger does not support configuring global-level permissions, so internal authorization like `GRANT priv ON *.*.*` remains effective, while permissions at other levels are not functional.
## Install and Configure Doris Ranger Plugin
diff --git a/versioned_docs/version-3.0/admin-manual/auth/authentication-and-authorization.md b/versioned_docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
index 09f07153c7be0..f42644af3513d 100644
--- a/versioned_docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
+++ b/versioned_docs/version-3.0/admin-manual/auth/authentication-and-authorization.md
@@ -302,7 +302,11 @@ Please refer to [Authorization Scheme Based on Apache Ranger](./ranger.md).
- root@'%': root user, allowed to log in from any node, with the operator role.
- admin@'%': admin user, allowed to log in from any node, with the admin role.
-2. It is not supported to delete or change the permissions of roles or users created by default.
+2. Deleting or altering the permissions of default created users, roles, or users is not supported.
+ - Deleting the users root@'%' and admin@'%' is not supported, but creating and deleting root@'xxx' and admin@'xxx' users (where xxx refers to any host except %) is allowed (Doris treats these users as regular users).
+ - Revoking the default roles of root@'%' and admin@'%' is not supported.
+ - Deleting the roles operator and admin is not supported.
+ - Modifying the permissions of the roles operator and admin is not supported.
3. There is only one user with the operator role, which is Root. There can be multiple users with the admin role.
diff --git a/versioned_docs/version-3.0/admin-manual/auth/authorization/ranger.md b/versioned_docs/version-3.0/admin-manual/auth/authorization/ranger.md
index f6913f2b859cc..201d54fb4072c 100644
--- a/versioned_docs/version-3.0/admin-manual/auth/authorization/ranger.md
+++ b/versioned_docs/version-3.0/admin-manual/auth/authorization/ranger.md
@@ -166,6 +166,9 @@ Equivalent to the internal Doris authorization statement `grant usage_priv on st
As shown in the image, when creating the service, add the configuration `default.policy.users`. If you need to configure multiple users with full permissions, separate them with `,`.

+4. After using Ranger for authentication, is internal authorization still effective?
+
+ No, it cannot be used, and roles cannot be created/deleted.
## Install and Configure Doris Ranger Plugin