

MongoDB 用户认证及操作 - rxliuli blog
source link: https://blog.rxliuli.com/p/13b0e6026a7942c29c2784508bd77526/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如果还没有安装 MongoDB 可以参考:Windows 下 MongoDB 便携版安装与初始化
启动 mongod
和 mongo shell
服务
1
2
3
4
5
# 启动 mongodb 服务
mongod --port 27017 --dbpath "D:\Program\mongodb-win32-x86_64-2008plus-ssl-4.0.1\mongodb_data\data" --logpath "D:\Program\mongodb-win32-x86_64-2008plus-ssl-4.0.1\mongodb_data\log\mongodb.log"
# 启动 mongo shell
mongo --port 27017
注:mongodb 的默认 port 就是 27017,所以也可以省略不写
创建管理员用户
1
2
3
4
5
6
7
8
9
10
11
12
# 切换到 admin 数据库
use admin;
# 创建用户 root, 密码是 root 的 admin 账号了
db.createUser(
{
user: "root",
pwd: "root",
roles: [
{role: "root", db: "admin"}
]
}
)
验证用户登录
- 重启一下
mongod
服务
1
2
# 这里的 --auth 选项就代表着启用身份认证
mongod --auth --port 27017 --dbpath "D:\Program\mongodb-win32-x86_64-2008plus-ssl-4.0.1\mongodb_data\data" --logpath "D:\Program\mongodb-win32-x86_64-2008plus-ssl-4.0.1\mongodb_data\log\mongodb.log"
- 测试 root 用户是否能正常登录
- 使用用户名/密码认证连接 mongodb
1
2# 这里添加了 --authenticationDatabase 设置认证的数据库
mongo --port 27017 -u "root" -p "root" --authenticationDatabase "admin" - 连接到 mongo 客户端后验证
1
2
3mongo --port 27017
use admin;
db.auth("root", "root");创建普通用户
1
2
3
4
5
6
7
8
9
10
11
12
13
# 切换到 test 数据库
use test;
# 创建用户 test, 密码是 test 的普通账号了
# 主要变化在于 role,修改为对数据库 [test] 拥有 [可读写] 权限
db.createUser(
{
user: "test",
pwd: "test",
roles: [
{ role: "readWrite", db: "yapi" }
]
}
)
使用 test 这个普通用户在登陆后能看到的也只有自己的数据库呢(如果数据库存在的话)
下面是一些常用的权限
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
- userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限
- dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。
- root:只在 admin 数据库中可用。超级账号,超级权限
使用 url 访问
1
2
3
4
# 不使用用户认证
mongodb://ip:port/db
# 使用用户认证
mongodb://username:password@ip:port/db
查看全局的所有账号
1
2use admin;
db.system.users.find().pretty()查看当前库下的用户
1
2use admin;
show users;-
1
2
3
4
5# 给用户 test 追加新的权限
db.grantRolesToUser(
"test",
[{role:"readWrite", db:"test"}]
) -
1
2
3
4
5
6
7
8
9# 替换用户 test 的权限
db.updateUser(
"test",
{
roles: [
{role:"read", db:"test"}
]
}
)
删除掉名为 test 的用户
1
db.dropUser('test')
Recommend
-
17
一、Windows身份认证基础 1、认证过程 a、本地用户认证 在进行本地登录认证时操作系统会使用用户输入的密码作为凭证去与系统中的密码进行对比验证。 在...
-
29
一、Windows身份认证基础 1、认证过程 a、本地用户认证 在进行本地登录认证时操作系统会使用用户输入的密码作为凭证去与系统中的密码进行对比验证。 在系统内部运行流程如下
-
13
rxliuli blog 博客迁_ 2020年12月29日 早上 355 字 ...
-
15
最近看完了 1984 这本小说,在之后也补了一下电影 Youtube 正版电影 一些设定令人惊奇 真理部:负责新闻、娱乐、教育、艺术 和平部:负责战争 有爱不:负责维持法律和秩序 富裕部:负...
-
13
本文最后更新于:2020年12月31日 上午 框架及社区react: 前端流行的 mvc 框架
-
19
该清单只是吾辈所用,使用工具因人而异,若是你对清单中的内容有何异议,可以在下方进行留言,吾辈会尽快阅读并回复! 附:列出的 Google Drive 链接是因为某些第三方 App 不在 Play Store 之中,而且在可预期的很长时间内都不可能在(Yout...
-
7
浅谈身份认证及如何防范身份盗窃 – 安全意识博客Skip to content 身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中确认操作者身份...
-
6
好莱坞经纪公司CAA与加密巨鲸0xB1签约,将通过认证及品牌合作帮助其NFT收藏变现 • 1 天前 ...
-
10
Spring Cloud OAuth2 实现用户认证及单点登录 精选 原创 文章较长,建议推荐,建议转发,建议收藏,建议...
-
5
普洛斯常熟东南数据中心获LEED金级认证及IDCC绿色算力基础设施奖 2023-09-01 10:04:37 普洛斯常熟东南数据中心此前已得到了业界广泛认可,2022年先后荣获“数据中心绿色等级评估”5A级规划类认证及5A级运营类认证...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK