-
注意:
- 验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
- 对于管理员用户,必须在admin下创建.
-
- 建用户时,use到的库,就是此用户的验证库
-
- 登录时,必须明确指定验证库才能登录
-
- 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
-
- 如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.
-
创建用户的语法:
- db.createUser
- {
- user: "<name>",
- pwd: "<cleartext password>",
- roles: [
- { role: "<role>",
- db: "<database>" } | "<role>",
- ...
- ]
- }
-
语法说明:
- user:用户名
- pwd:密码
- roles:
- role:角色名
- db:作用对象
- role:root, readWrite,read
-
实例1:
- 创建超级管理员,管理所有数据库(必须在admin库中创建)
-
登录mongodb:
- mongo
- use admin
- db.createUser(
- {
- user: "root",
- pwd: "root123",
- roles: { role: "root", db: "admin" }
- }
- )
- 登录验证用户创建是否成功:
- mongo -uroot -proot123 192.168.8.5/admin
-
禁止mongo无用户密码登录:
- vim /mongodb/conf/mongo.conf
-
添加:
- security:
- authorization: enabled
-
重启mongodb
- mongod -f /mongodb/conf/mongo.conf --shutdown
- mongod -f /mongodb/conf/mongo.conf
- 再次使用mongo登录 发现可以登录 但看不到任何数据库
- 查看所有用户:
- db.system.users.find().pretty()
-
实例2;
-
创建库管理用户:
- 登录数据库:mongo -uroot -proot123 admin
- use app (针对于app库创建管理用户)
- db.createUser(
- {
- user: "adminapp",
- pwd: "app123",
- roles: { role: "dbAdmin", db: "app" }
- }
- )
- 登录测试:mongo -uadminapp -papp123 192.168.8.10/app
-
-
实例3:
-
针对于app库创建app01用户,赋予读写权限:
- use app
- 单库完全控制账户
- db.createUser(
- {
- user: "app01",
- pwd: "app01",
- roles: { role: "readWrite" , db: "app" }
- }
- )
- 登录测试:mongo -uapp01 -papp01 192.168.8.10/app
-
单库只读账户:
- use app
- db.createUser(
- {
- user: "app02",
- pwd: "app02",
- roles: { role: "read" , db: "app" }
- }
- )
- mongo -uapp02 -papp02 192.168.8.10/app
-
-
-
实例4:创建app数据库读写权限的用户并对test数据库具有读写权限:
-
创建多库管理账户:
- 用户app03针对于app具有读写权限,针对于test库同样具备读写权限
- mongo -uroot -proot123 192.168.8.10/admin
- use app
- db.createUser(
- {
- user: "app03",
- pwd: "app03",
- roles: [ { role: "readWrite", db: "app" },
- { role: "readWrite", db: "test" }]})
- mongo -uapp03 -papp03 192.168.8.10/app
-
-
实例5:
-
查询mongodb中的用户信息:
- mongo -uroot -proot123 192.168.8.10/admin
- db.system.users.find().pretty()
-
删除用户(需要以root用户登录到验证库)
- mongo -uroot -proot123 192.168.8.10/admin
- use app
- db.dropUser("adminapp")
-
2.MongoDB 用户管理
努力转型的IT小王2024-06-12 13:46
相关推荐
做运维的阿瑞9 分钟前
Linux下DNS服务器搭建团子股股东峥哥12 分钟前
day37-RHEL-管理基本存储君生我老28 分钟前
Linux inode概念 &软硬连接Roadinforest33 分钟前
NoSQL的最终一致性:真的可靠吗?敲代码的嘎仔35 分钟前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_converter_reset调用流程与实战(二十一)youyou-06061 小时前
AUTOSAR‑COM 常见问题 QA (1)承渊政道1 小时前
PostgreSQL 鸿蒙 PC 适配全记录:从原生交叉编译到 HNP 数据库服务闭环m0_743697591 小时前
grep 的引号、反斜杠与正则方言:一次讲清我踩过的坑风哥2号1 小时前
数据库教程FGMT26‑2-GoldenGate数据库容灾迁移02(OGG同构异构、数据库迁移、数据同步、容灾复制)