前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB用户和密码登录

MongoDB用户和密码登录

作者头像
拓荒者
发布2019-08-29 17:23:44
1.2K0
发布2019-08-29 17:23:44
举报
文章被收录于专栏:运维经验分享运维经验分享

一、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

代码语言:javascript
复制
mongo --host 10.10.18.11

代码语言:javascript
复制
use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

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

查看创建的管理员账号

代码语言:javascript
复制
use admin
db.getUser("myUserAdmin")

重启MongoDB实例

连接MongoDB

1、类似Mysql一样连接

代码语言:javascript
复制
mongo --host 10.10.18.11 -u "myUserAdmin" --authenticationDatabase "admin" -p'abc123'

结果:

代码语言:javascript
复制
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

代码语言:javascript
复制
mongo --host 10.10.18.11

进行验证

代码语言:javascript
复制
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth("myUserAdmin", "abc123" )
1

三、创建普通用户

创建一个普通用户

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

代码语言:javascript
复制
use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

普通用户连接MongoDB实例

代码语言:javascript
复制
mongo --host 10.10.18.11 -u "myTester" --authenticationDatabase "test" -p'xyz123'

结果:

代码语言:javascript
复制
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集合中插入、查询数据

代码语言:javascript
复制
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" }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档