阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MongoDB用户和密码登录

114次阅读
没有评论

共计 2213 个字符,预计需要花费 6 分钟才能阅读完成。

一、MongoDB 中内置角色

角色 介绍
read 提供读取所有非系统的集合(数据库)
readWrite 提供读写所有非系统的集合(数据库)和读取所有角色的所有权限
dbAdmin 提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。
dbOwner 提供对数据库执行任何管理操作的功能。此角色组合了 readWrite,dbAdmin 和 userAdmin 角色授予的权限。
userAdmin 提供在当前数据库上创建和修改角色和用户的功能。由于 userAdmin 角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。
clusterAdmin 提供最佳的集群管理访问。此角色组合了 clusterManager,clusterMonitor 和 hostManager 角色授予的权限。此外,该角色还提供了 dropDatabase 操作。
readAnyDatabase 仅在 admin 数据库中使用,提供所有数据库的读权限。
readWriteAnyDatabase 尽在 admin 数据库中使用,提供所有数据库的读写权限
userAdminAnyDatabase 尽在 admin 数据库中使用,提供与 userAdmin 相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。
dbAdminAnyDatabase 仅在 admin 数据库中使用,提供与 dbAdmin 相同的数据库管理操作访问权限,该角色还在整个群集上提供 listDatabases 操作。
root 尽在 admin 数据库中使用,提供超级权限

二、 创建管理员用户

创建管理员

连接 mongodb

mongo –host 10.10.18.11

 

 

use admin
db.createUser(
  {
    user: “myUserAdmin”,
    pwd: “abc123”,
    roles: [{ role: “userAdminAnyDatabase”, db: “admin”}, “readWriteAnyDatabase” ]
  }
)

 

创建管理员账号:myUserAdmin 密码:abc123

 

查看创建的管理员账号

use admin
db.getUser(“myUserAdmin”)

重启 MongoDB 实例

连接 MongoDB

1、类似 Mysql 一样连接

mongo –host 10.10.18.11 -u “myUserAdmin” –authenticationDatabase “admin” -p’abc123′

结果:

1 MongoDB shell version v4.0.10
2 connecting to: mongodb://10.10.18.11:27017/?authSource=admin&gssapiServiceName=mongodb
3 Implicit session: session {“id” : UUID(“3b067347-1b0e-4761-9399-cb3ad4ba6c93”) }
4 MongoDB server version: 4.0.10

2、登录后进行验证

连接 mongodb

mongo –host 10.10.18.11

进行验证

rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth(“myUserAdmin”, “abc123”)
1

三、创建普通用户

创建一个普通用户

用户名:myTester
密码:xyz123
权限:读写数据库 test,只读数据库 reporting。

use test
db.createUser(
  {
    user: “myTester”,
    pwd: “xyz123”,
    roles: [{ role: “readWrite”, db: “test”},
            {role: “read”, db: “reporting”} ]
  }
)

普通用户连接 MongoDB 实例

mongo –host 10.10.18.11 -u “myTester” –authenticationDatabase “test” -p’xyz123′

结果:

1 MongoDB shell version v4.0.10
2 connecting to: mongodb://10.10.18.11:27017/?authSource=test&gssapiServiceName=mongodb
3 Implicit session: session {“id” : UUID(“3e9011ee-729f-4112-acd1-f5d1515490ac”) }
4 MongoDB server version: 4.0.10

验证权限

在 test 集合中插入、查询数据

rs0:PRIMARY> db.test.insertOne({name:”sue”,age:19,status:’p’})
{
        “acknowledged” : true,
        “insertedId” : ObjectId(“5d00b364a75d40ae9b83c64c”)
}
rs0:PRIMARY> db.test.find({name:”sue”})
{“_id” : ObjectId(“5d00b364a75d40ae9b83c64c”), “name” : “sue”, “age” : 19, “status” : “p” }

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2213字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中