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

in STEEM CN/中文last month

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

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

Coin Marketplace

STEEM 0.31
TRX 0.12
JST 0.033
BTC 63849.10
ETH 3132.18
USDT 1.00
SBD 3.89