在前面的几篇中介绍了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
好啰,其它操作和以前一样,不再赘述。
666
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit