lemooljiang avatar

Chroma向量数据库的权限认证 / ai #33

lemooljiang

Published: 24 Mar 2024 › Updated: 24 Mar 2024Chroma向量数据库的权限认证 / ai #33

Chroma向量数据库的权限认证 / ai #33

chromadb.jpg

https://docs.trychroma.com/

在前面的几篇中介绍了Chroma向量数据库的安装和使用等环节,但缺少一个重要的点:那就是权限认证! 任何一个数据库都不能少了权限这关,否则分分钟就被攻击了!

下面是安装和测试环节:

服务端

docker-compose构建

1. github
mkdir chromadb & cd chromadb & git init
git clone https://github.com/chroma-core/chroma.git
cd chroma

2. chroma
# apt install apache2-utils
htpasswd -Bbn admin admin > server.htpasswd
# 其中 “admin admin”是用户名和密码,可自行修改
# 或用docker创建
docker run --rm --entrypoint htpasswd httpd:2 -Bbn admin admin > server.htpasswd
#文件内容: admin:$2y$05$QrljJulAv9jz8YOvo2gn.OX5BdvOe0Mv1tAhhohxe0KAWlTdsPpau

3. 
export CHROMA_SERVER_AUTH_CREDENTIALS_FILE="server.htpasswd"
export CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER="chromadb.auth.providers.HtpasswdFileServerAuthCredentialsProvider"
export CHROMA_SERVER_AUTH_PROVIDER="chromadb.auth.basic.BasicAuthServerProvider"

4. 
docker compose up -d --build

//查看运行结果
docker ps -a
    846bdxxx   server    "/docker_entrypoint.…"   8 seconds ago   Up 7 seconds (health: starting)   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   chroma-server-1

客户端

import chromadb
from chromadb.config import Settings

httpClient = chromadb.HttpClient(
  host='localhost', port=8000,
  settings=Settings(chroma_client_auth_provider="chromadb.auth.basic.BasicAuthClientProvider",chroma_client_auth_credentials="admin:admin")
  )

//没有权限的用户会报错: chromadb.errors.AuthorizationError: Unauthorized

好啰,其它操作和以前一样,不再赘述。

Leave Chroma向量数据库的权限认证 / ai #33 to:

Written by

Designer , Poet , Technology enthusiasts

Read more #cn posts


Best Posts From lemooljiang

We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From lemooljiang