FastGPT 添加多用户与多团队:MongoDB 数据库操作指南
前言
开源版本的 FastGPT 默认只有一个超级用户 root。为了更好地管理应用和知识库,可以通过操作 MongoDB 数据库来增加新的用户和团队。本文将详细介绍操作步骤。
所需环境
- 已安装并运行的 FastGPT 实例
- MongoDB 客户端工具(如 Mongo Shell 或 Robo 3T 等)
操作步骤
1. 进入 Mongo 容器
如果你使用的是容器化部署(如 Podman 或 Docker),可以使用以下命令进入运行中的 Mongo 容器:
sudo docker exec -it mongo bash
成功进入容器后,命令行终端的提示符会发生变化,通常会变为容器内的 Shell 环境。
2. 登录 Mongo 数据库
方法一:直接登录(推荐)
mongo --username fastgpt --password fastgpt --authenticationDatabase admin
方法二:分步登录(适用于安全审计限制不能直接输密码的情况)
先输入用户名:
mongo --username fastgpt
随后终端将提示你输入密码(密码输入时不显示字符),输入正确后即可登录。
3. 增加新用户
向 users 集合中插入一条新记录:
db.getCollection("users").insert({
username: "demo",
password: "756bc47cb5215dc3329ca7e1f7be33a2dad68990bb94b76d90aa07f4e44a233a",
status: "active",
avatar: "/icon/human.svg",
balance: NumberInt("100000"),
promotionRate: NumberInt("10"),
timezone: "Asia/Shanghai",
createTime: new ISODate()
});
4. 创建新团队
向 teams 集合中插入一条新记录:
db.getCollection("teams").insert({
name: "New Team",
ownerId: ObjectId("65916f1a52ac39c5d10bb505"),
avatar: "/icon/newteam.svg",
createTime: new ISODate(),
balance: NumberInt("100000"),
maxSize: NumberInt("10"),
__v: NumberInt("0")
});
5. 将用户加入团队
向 team_members 集合中插入一条新记录:
db.getCollection("team_members").insert({
teamId: ObjectId("65916f3952ac39c5d10bb506"),
userId: ObjectId("65916f1a52ac39c5d10bb505"),
name: "Owner",
role: "owner",
status: "active",
createTime: new ISODate(),
defaultTeam: true
});
密码加密规则
如果需要创建自定义密码,需要按以下规则加密:
- 使用 SHA-256 算法对原始密码进行第一次 hash
- 将第一次 hash 的结果作为字符串,再进行一次 SHA-256 hash
- 得到的第二次 hash 结果即为最终用于数据库的加密密码
Python 示例代码:
import hashlib
def encrypt_password(password: str) -> str:
# 第一次 SHA-256
first_hash = hashlib.sha256(password.encode()).hexdigest()
# 第二次 SHA-256
final_hash = hashlib.sha256(first_hash.encode()).hexdigest()
return final_hash
# 示例
password = "your_password_here"
encrypted = encrypt_password(password)
print(encrypted)
注意事项
- ⚠️ 操作数据库前请先备份
- ⚠️ ObjectId 需要与实际创建的用户/团队 ID 对应
- ⚠️ 默认密码
demo的加密值仅供参考,实际使用时建议生成新的
原创内容,转载需授权