跳到主要内容

用户访问身份验证

本指南解释如何在 Milvus 中管理用户身份验证,包括启用身份验证、以用户身份连接以及修改用户凭据。

  • TLS 和用户身份验证是两种不同的安全方法。如果您在 Milvus 系统中同时启用了用户身份验证和 TLS,则必须提供用户名、密码和证书文件路径。有关如何启用 TLS 的信息,请参考传输中加密

  • 本页面上的代码片段使用新的 MilvusClient(Python)与 Milvus 交互。其他语言的新 MilvusClient SDK 将在未来更新中发布。

启用用户身份验证

要为您的 Milvus 服务器启用用户身份验证,请在 Milvus 配置文件 milvus.yaml 中将 common.security.authorizationEnabled 设置为 true。有关配置的更多信息,请参考使用 Docker Compose 配置 Milvus

...
common:
...
security:
authorizationEnabled: true
...

要为您的 Milvus 服务器启用用户身份验证,请在 Milvus 配置文件 values.yaml 中将 authorizationEnabled 设置为 true。有关配置的更多信息,请参考使用 Helm Charts 配置 Milvus

...
extraConfigFiles:
user.yaml: |+
common:
security:
authorizationEnabled: true
...

要启用身份验证,请在 Milvus CRD 中将 spec.common.security.authorizationEnabled 设置为 true。有关 Milvus CRD 的更多信息,请参考使用 Milvus Operator 配置 Milvus

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
# 省略其他字段 ...
config:
common:
security:
authorizationEnabled: true

使用身份验证连接到 Milvus

启用身份验证后,您需要使用用户名和密码连接到 Milvus。默认情况下,当 Milvus 启动时,会创建 root 用户,密码为 Milvus。以下是使用默认 root 用户在启用身份验证的情况下连接到 Milvus 的示例:

# 使用默认的 `root` 用户连接到 Milvus

from pymilvus import MilvusClient

client = MilvusClient(
uri='http://localhost:19530', # 替换为您自己的 Milvus 服务器地址
token="root:Milvus"
)

如果在启用身份验证的情况下连接到 Milvus 时未能提供有效的令牌,您将收到 gRPC 错误。

创建新用户

一旦以默认 root 用户身份连接,您可以创建并验证新用户,如下所示:

# 创建用户
client.create_user(
user_name="user_1",
password="P@ssw0rd",
)

# 验证用户已创建

client.describe_user("user_1")

# 输出
# {'user_name': 'user_1', 'roles': ()}

有关创建用户的更多信息,请参考 create_user()

使用新用户连接到 Milvus

使用新创建用户的凭据连接:

# 使用新创建的用户连接到 milvus

client = MilvusClient(
uri="http://localhost:19530",
token="user_1:P@ssw0rd"
)

更新用户密码

使用以下代码更改现有用户的密码:

# 更新密码

client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="P@ssw0rd123"
)

有关更新用户密码的更多信息,请参考 update_password()

如果您忘记了旧密码,Milvus 提供了一个配置项,允许您指定某些用户为超级用户。这样在重置密码时就不需要旧密码。

默认情况下,Milvus 配置文件中的 common.security.superUsers 字段为空,这意味着所有用户在重置密码时都必须提供旧密码。但是,您可以指定特定用户为超级用户,他们不需要提供旧密码。在下面的代码片段中,rootfoo 被指定为超级用户。

您应该在管理 Milvus 实例运行的 Milvus 配置文件中添加以下配置项。

common:
security:
superUsers: root, foo

删除用户

要删除用户,请使用 drop_user() 方法。

client.drop_user(user_name="user_1")

要删除用户,您不能是被删除的用户。否则,将引发错误。

列出所有用户

列出所有用户。

# 列出所有用户

client.list_users()

限制

  1. 用户名不能为空,且长度不能超过 32 个字符。必须以字母开头,只能包含下划线、字母或数字。
  2. 密码必须至少有 6 个字符,且长度不能超过 256 个字符。

下一步