MongoDB数据库用户角色和权限管理详解

 更新时间:2020年11月09日 10:17:37   作者:任我乐  
这篇文章主要给大家介绍了关于MongoDB数据库用户角色和权限管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

查看数据库

使用终端命令行输入 mongo 登陆 mongodb 之后切换到 admin 库,并认证后可查看所有数据库,操作如下所示:

[root@renwole.com ~]# mongo
MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1ea1-4343-9523-167a101973a9") }
MongoDB server version: 4.4.0
> use admin
> db.auth("admin","InaM6Aip#2JBlWwY")
1
> show dbs
admin  0.000GB
config  0.000GB
local  0.000GB

说明:1 表示认证成功,0 表示认证失败,认证失败后查看数据库无任何返回。

创建数据库及用户

创建一个 renwoledb 数据库并授权 renwole 用户为该库的 dbOwner 角色。另外、MongoDB数据库实行注册制,数据库内无内容时,无法查看到新建的数据库,操作如下:

> use renwoledb
> db.createUser(
  {
   user:"renwole",
   pwd:"renwolecom",
   roles:[{role:"dbOwner",db:"renwoledb"}]
  }
)

此时已完成了一库一账号的创建。如果创建用户提示无权限,请先使用超级管理员登录之后切换到对应的数据库再创建即可,如下所示:

MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7be9-4c30-ad2e-2a5b58127ab7") }
MongoDB server version: 4.4.0
> use renwoledb
switched to db renwoledb
> db.createUser(
   {
    user:"renwole",
    pwd:"renwolecom",
    roles:[{role:"dbOwner",db:"renwoledb"}]
   }
 )
uncaught exception: Error: couldn't add user: command createUser requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1343:11
@(shell):1:1

> use admin
switched to db admin
> db.auth("root","renwolecompassword")
1
> use renwoledb
switched to db renwoledb
> db.createUser(
   {
    user:"renwole",
    pwd:"renwolecom",
    roles:[{role:"dbOwner",db:"renwoledb"}]
   }
 )
Successfully added user: {
	"user" : "renwole",
	"roles" : [
		{
			"role" : "dbOwner",
			"db" : "renwoledb"
		}
	]
}

添加 root 用户,拥有整个 MongoDB 最高权限,建议取消认证模式后,先进入到 admin 库,再添加 root 用户权限

> use admin
> db.createUser({user: "root",pwd: "renwolecom",roles: [ { role: "root", db: "admin" } ]})

密码修改

修改某个账号的数据库密码需要进入到该数据库,认证后再修改,否则报错,操作如下:

> use renwoledb
> db.changeUserPassword("renwole", "renwolecompwdnew")
> db.auth("renwole","renwolecompwdnew")
1

删除用户及数据库

删除用户(必须切换到admin使用最高权限删除某个用户角色)

> db.system.users.remove({user:"renwole"});
WriteResult({ "nRemoved" : 1 })

删除所有用户(必须具备超级管理权限才能删除)

> db.system.users.remove({})

删除数据库(必须切换到指定的数据库,然后再删除)

> use renwoledb
switched to db renwoledb
> db.dropDatabase()
{ "ok" : 1 }
>

总结

到此这篇关于MongoDB数据库用户角色和权限管理的文章就介绍到这了,更多相关MongoDB用户角色和权限管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB的$sample、aggregate和$rand实现随机选取数据

    MongoDB的$sample、aggregate和$rand实现随机选取数据

    在MongoDB中,我们可以使用内置的$sample聚合操作符来随机生成数据,$sample可以从集合文档中随机选择指定数量的文档,但由于其查询整个集合的性能问题,应该慎用,aggregate方法以及$rand函数的结合使用可以实现更加灵活的查询操作,并且可以对查询结果进行精细筛选
    2024-01-01
  • MongoDB高可用与分片

    MongoDB高可用与分片

    最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?让我们一起,一探究竟,继续学习MongoDB高可用和片键策略,实现快速入门,感兴趣的小伙伴可以参考阅读
    2023-04-04
  • MongoDB导出查询结果到文件例子

    MongoDB导出查询结果到文件例子

    这篇文章主要介绍了MongoDB导出查询结果到文件例子,本文直接给出示例代码,简洁易懂,需要的朋友可以参考下
    2015-02-02
  • Centos7安装和卸载Mongodb数据库的方法

    Centos7安装和卸载Mongodb数据库的方法

    MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展。MongoDB是工作在集合和文档上一种概念。下面通过本文给大家分享Centos7安装和卸载Mongodb数据库的方法,需要的朋友参考下吧
    2017-11-11
  • Mongodb数据库误删后的恢复方法(两种)

    Mongodb数据库误删后的恢复方法(两种)

    本文给大家分享两种方法来实现Mongodb数据库误删后的恢复,每种方法给大家介绍的都非常详细,需要的朋友参考下吧
    2018-08-08
  • MongoDB服务端JavaScript脚本使用方法

    MongoDB服务端JavaScript脚本使用方法

    这篇文章主要介绍了MongoDB服务端JavaScript脚本使用方法,需要的朋友可以参考下
    2015-10-10
  • MongoDB的基础知识简介

    MongoDB的基础知识简介

    这篇文章主要介绍了MongoDB的基础知识简介,需要的朋友可以参考下
    2017-05-05
  • mongodb linux下集群搭建过程

    mongodb linux下集群搭建过程

    这篇文章主要介绍了mongodb linux下集群搭建过程,本例中,为每个集群(shard config)三个mongo实例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • SpringBoot+MongoDB实现物流订单系统的代码

    SpringBoot+MongoDB实现物流订单系统的代码

    这篇文章主要介绍了SpringBoot+MongoDB实现物流订单系统的代码,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • MongoDB索引机制详解

    MongoDB索引机制详解

    与MySQL 一样,"索引" 在 MongoDB 中也是用于优化查询的一种数据结构,通过创建适当的索引,MongoDB 能够快速地定位符合查询条件的文档,从而减少了扫描文档的数量,提高了查询性能。本文详细介绍了MongoDB 的索引机制,感兴趣的同学可以参考阅读
    2023-04-04

最新评论