0%

MongoDB Note

将记录MongoDB的权限配置

MongoDB

数据库管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 选择使用的数据库
# 如果没有则会直接创建
use DATABASE_NAME

# 查看数据库
# 刚创建的数据并不会显示,再插入数据后会重新显示
db.insertOne();
# 默认数据库为test
show dbs

# 数据库删除
# 先切换到对应的数据库
use DATABASE_NAME;
db.dropDatabase();

权限管理

在这里直接用Docker部署的MongoDB配置权限

首先拉取MongoDB镜像

1
docker pull mongodb

运行容器

1
docker run -itd --name mongo -p 27017:27017 mongo --auth
  • -itd 后台运行 开启输入输出

  • -p 指定端口

  • –auth 开启密码访问

  • -v 数据存放绝对位置:容器中数据存储位置

1
2
#MongoDB  好像是这里 2333  举个例子
-v /home/Docker/data/db:data/db

进入容器

1
docker exec -it mongo mongo admin

以admin登录mongo(目前还未开启验证)

设置admin账号密码

1
2
3
4
5
6
7
8
9
db.createUser({ user:'admin',
pwd:'123456',
roles:[ { role:'userAdminAnyDatabase',
db: 'admin'},
"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456');
# 输出为1...嗯 我记得是

现在MongoDB已经有了Auth验证,但是该账号的权限是对admin进行管理

如果我们有了具体操作的数据库对象,必须设置一个具有对应数据库读写权限的用户

1
2
3
4
5
6
7
8
# 先进入对应的数据库
use dname;
db.createUser({
user:"username",
pwd:"password",
roles:[
{role:"readWrite",db:"dbname"}
]})