From 9c374cd91ca58b16d7c9fd1a746b4b50da837ef0 Mon Sep 17 00:00:00 2001 From: cbcwestwolf <1004626265@qq.com> Date: Sat, 30 Dec 2023 23:43:24 +0800 Subject: [PATCH] Take bb7133's advice --- security-compatibility-with-mysql.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/security-compatibility-with-mysql.md b/security-compatibility-with-mysql.md index 9863173d684af..5919997d6adc1 100644 --- a/security-compatibility-with-mysql.md +++ b/security-compatibility-with-mysql.md @@ -110,7 +110,7 @@ TiDB 的密码重用策略功能与 MySQL 一致,在实现密码重用策略 TiDB 支持多种身份验证方式。通过使用 [`CREATE USER`](/sql-statements/sql-statement-create-user.md) 语句和 [`ALTER USER`](/sql-statements/sql-statement-alter-user.md) 语句,即可创建新用户或更改 TiDB 权限系统内的已有用户。TiDB 身份验证方式与 MySQL 兼容,其名称与 MySQL 保持一致。 -TiDB 目前支持的身份验证方式可在以下的表格中查找到。服务器和客户端建立连接时,如要指定服务器对外通告的默认验证方式,可通过 [`default_authentication_plugin`](/system-variables.md#default_authentication_plugin) 变量进行设置。`tidb_sm3_password` 为仅在 TiDB 支持的 SM3 身份验证方式,使用该方式登录的用户需要使用 [TiDB-JDBC](https://github.com/pingcap/mysql-connector-j/tree/release/8.0-sm3)。 +TiDB 目前支持的身份验证方式可在以下的表格中查找到。服务器和客户端建立连接时,如要指定服务器对外通告的默认验证方式,可通过 [`default_authentication_plugin`](/system-variables.md#default_authentication_plugin) 变量进行设置。`tidb_sm3_password` 为仅在 TiDB 支持的 SM3 身份验证方式,使用该方式登录的用户需要使用 [TiDB-JDBC](https://github.com/pingcap/mysql-connector-j/tree/release/8.0-sm3)。`tidb_auth_token` 为用于 TiDB Cloud 内部的基于 JSON Web Token (JWT) 的认证方式,用户通过配置也可以在自托管环境使用。 针对 TLS 身份验证,TiDB 目前采用不同的配置方案。具体情况请参见[为 TiDB 客户端服务端间通信开启加密传输](/enable-tls-between-clients-and-servers.md)。 @@ -133,9 +133,9 @@ TiDB 目前支持的身份验证方式可在以下的表格中查找到。服务 ### `tidb_auth_token` -`tidb_auth_token` 是一种基于 [JSON Web Token (JWT)](https://datatracker.ietf.org/doc/html/rfc7519) 的无密码认证方式,用于 TiDB Cloud 内部用户认证。不同于 `mysql_native_passsword`、`caching_sha2_password` 等使用密码的认证方式,创建 `tidb_auth_token` 用户时无需设置并保存自定义的密码;使用 `tidb_auth_token` 进行登录时使用签发的 token 进行登录,可以简化用户的认证过程并提升安全性。 +`tidb_auth_token` 是一种基于 [JSON Web Token (JWT)](https://datatracker.ietf.org/doc/html/rfc7519) 的无密码认证方式,用于 TiDB Cloud 内部的用户认证,用户通过配置也可以在自托管环境使用。不同于 `mysql_native_passsword`、`caching_sha2_password` 等使用密码的认证方式,创建 `tidb_auth_token` 用户时无需设置并保存自定义的密码;使用 `tidb_auth_token` 进行登录时使用签发的 token 进行登录,可以简化用户的认证过程并提升安全性。 -JWT 由 header、payload 和 signature 三部分组成,每部分使用 base64 编码之后拼接成一个字符串,中间用点号(`.`)分开。 +JWT 由 Header、Payload 和 Signature 三部分组成,每部分使用 base64 编码之后拼接成一个字符串,中间用点号(`.`)分开。 Header 描述 JWT 的元数据,包含 3 个属性: @@ -143,7 +143,7 @@ Header 描述 JWT 的元数据,包含 3 个属性: * `typ`:表示 token 的类型,统一为 `JWT` * `kid`:表示用于生成 token 签名的 key id -下面是一个 header 示例: +下面是一个 Header 示例: ```json { @@ -164,7 +164,7 @@ Payload 是 JWT 的主体部分,保存用户的信息,每个字段就是一 * `email`:邮件地址。创建用户时可以通过 `ATTRIBUTE '{"email": "xxxx@pingcap.com"}` 指定 email 信息。如果创建用户时未指定 email 信息,则该声明应设置为空串;否则应该与设置值相同 -下面是几个合法的 payload 示例: +下面是几个合法的 Payload 示例: ```json { @@ -191,7 +191,7 @@ Signature 对上面两部分数据进行签名。 > **警告:** > -> 1. Header 与 payload 使用 base64 进行编码的过程是可逆的,请勿在 payload 中携带敏感数据 +> 1. Header 与 Payload 使用 base64 进行编码的过程是可逆的,请勿在 Payload 中携带敏感数据 > 2. `tidb_auth_token` 认证方式要求客户端支持 [`mysql_clear_password`](https://dev.mysql.com/doc/refman/8.0/en/cleartext-pluggable-authentication.html) 插件,并将 token 以明文的方式发送至 TiDB,因此请[为 TiDB 开启加密传输](/enable-tls-between-clients-and-servers.md) 后再使用 `tidb_auth_token` 进行认证 配置并使用 `tidb_auth_token` 作为 TiDB 用户的认证方式,有以下几个步骤: