iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >MongoDB 用户相关操作
  • 617
分享到

MongoDB 用户相关操作

2024-04-02 19:04:59 617人浏览 泡泡鱼
摘要

   在我们第一次启动mongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证。 [root@VM-

   在我们第一次启动mongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证。


[root@VM-0-14-Centos monGo_27017]# mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("61c35b47-f43b-48fc-a43e-066f56987e9a") }
MongoDB server version: 4.0.6
> db
test

> show dbs;
admin  0.000GB
config 0.000GB
local  0.000GB

> use admin
switched to db admin

> show users;
> db.system.user.find()

      我们第一次登录MongoDB的服务,输入db,发现当前数据库是test,但是show dbs却看不到test数据库,其实这个是MongoDB的一个特点,test是一个虚的数据库,想要看到test中的内容,你只需要给test数据库中插入一个文档即可。

     接着,我们可以看到,当我们输入show users的时候,没有看到任何账号信息。接下来我们准备开启--auth参数来重启MongoDB服务,在重启之前,我们需要保证已经分配了新的账号,下面我们开始分配账号:


> db.createUser({ user: "root", pwd: "123456", roles: [ { role: "root", db: "admin"} ]}) 
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

这里,我们可以看到,我们分配了一个账号:

user:root     # 用户名

pwd:123456 # 密码

roles:root    # 角色

db:admin     # 数据库

角色root有必要做一下解释:


Read:   允许用户读取指定数据库,
readWrite:允许用户读写指定数据库
dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
clusterAdmin:     只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:    只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:  只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:         只在admin数据库中可用。超级账号,超级权限

更详细的内容,请参看官方文档:

https://docs.mongodb.com/manual/reference/built-in-roles/#dbAdmin

好了,创建好用户之后,我们重启MongoDB服务,在配置文件中打开--auth参数,或者直接在命令行里面指定auth参数,重新登陆:


[root@VM-0-14-centos mongo_27017]# mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5f2b0fa6-a1e3-4aaf-b43f-3525e19c33D2") }
MongoDB server version: 4.0.6
> 
> use admin
switched to db admin
> show users
2020-10-28T23:42:06.127+0800 E QUERY  [js] Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1763:1
shellHelper.show@src/mongo/shell/utils.js:859:9
shellHelper@src/mongo/shell/utils.js:766:15
@(shellhelp2):1:1
> db.auth("root","123456")
1
> show users
{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}

可以看到,当我们第一次使用show users的命令查看用户的时候,系统拒绝了我们,显示:

Error: command usersInfo requires authentication

然后我们进行权限校验:

use admin

db.auth("root","123456")

这下可以了。

不知道大家有没有留意到一个细节,我们登陆的时候,使用mongo命令登陆的,然后进行用户认证,有没有一种方法可以直接在登陆的时候就进行用户认证呢?答案是有的。

登陆方法一:

mongo

use admin

db.auth("user":"passWord")

登陆方法二:

mongo -u "user" -p "password"

如下:


[root@VM-0-14-centos mongo_27017]# mongo -u "root" -p "123456"
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ef872d7a-77d9-43c2-bf3d-e04867379c0a") }
MongoDB server version: 4.0.6
> use admin 
switched to db admin
> show users
{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}
>

到这里,我们已经学会了第一次登陆MongoDB之后,如何进行初始用户配置、如何开启MongoDB的认证模式(--auth参数)、以及在登录的时候如何进行用户认证,用户这块儿还有很多其他内容,下一节我们展开说。

以上就是MongoDB 用户相关操作的详细内容,更多关于MongoDB 用户操作的资料请关注编程网其它相关文章!

--结束END--

本文标题: MongoDB 用户相关操作

本文链接: https://www.lsjlt.com/news/122402.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB 用户相关操作
       在我们第一次启动MongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证。 [root@VM-...
    99+
    2024-04-02
  • MongoDB管理用户的相关操作是什么
    这篇文章给大家介绍MongoDB管理用户的相关操作是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 列出所有用户mongouse admin ...
    99+
    2024-04-02
  • Oracle的用户、角色及权限相关操作
    1、创建用户 create user KD identified by 123456; ...
    99+
    2024-04-02
  • python之线程相关操作
    1.线程: 一个进程可以有多个线程,共享一个进程的资源; 2.进程线程的区别:    进程是资源分配的最小单位,线程是程序执行的最小单位 3.python中线程模块threading, 提供的类: Thread, Lock, Rlock,...
    99+
    2023-01-30
    线程 操作 python
  • Java——List删除相关操作
    目录 1.List循环删除元素 2.List删除重复元素 1.List循环删除元素 日常业务中,有时候需要我们遍历List列表,并对其中的元素进行判断并进行删除。 (1)List列表中,如果我们要循环删除元素,那么我们是不能直接遍历然后进...
    99+
    2023-09-14
    java list 开发语言 后端
  • MongoDB常用操作
    关系型数据库名词与MongoDB对比:关系数据库 MongoDB Database  DatabaseTable CollectionRow Do...
    99+
    2024-04-02
  • python3文件操作相关模块
    os模块: os.curdir'.' os.pardir'..' os.sep #路径分隔符,不同的操作系统看到的结果不一样'/' os.linesep #换行符,不同的操作系统看到的也不一样,windox'\n' os.getc...
    99+
    2023-01-31
    模块 操作 文件
  • PHP 字符串相关常用操作方法
    PHP 字符串相关操作方法 并置运算符 查找字符位置strlen() 获取字符串长度mb_strlen() 获取中文等字符串长度strpos() 返回字符串在另一字符串中第一次出现的位置(...
    99+
    2023-09-11
    php apache 开发语言
  • GoLang channel关闭状态相关操作详解
    关于 channel 的使用,有几点不方便的地方: 1.在不改变 channel 自身状态的情况下,无法获知一个 channel 是否关闭。 2.关闭一个 closed channe...
    99+
    2024-04-02
  • 关于mysql的相关操作是怎样的
    这篇文章将为大家详细讲解有关关于mysql的相关操作是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、Mysql用户密码修改mysql密码修改有多种...
    99+
    2024-04-02
  • Golang实现SSH、SFTP等相关操作
    1.1 前言 在日常的一些开发场景中,我们需要去和远程服务器进行一些通信,执行一些相关命令操作,这个时候我们就可以使用SSH协议实现目标。SSH协议是建立在应用层上的安全协议,全称为Secure ...
    99+
    2023-09-05
    ssh golang 服务器
  • C#操作Excel相关方法总结
    C#操作Excel相关方法总结:1. 创建Excel文件:- 使用Microsoft.Office.Interop.Excel库中的Application对象创建一个新的Excel文件。- 使用NPOI或EPPlus等开源库创建一个新的...
    99+
    2023-08-09
    C#
  • C# 操作MongoDB
    1 安装MongoDB.Driver2 建立数据库连接 #mongodb://127.0.0.1:27017 MongoClient client = new MongoClient(“连接字符串”); ...
    99+
    2024-04-02
  • Python操作Mongodb
    一 导入 pymongo from pymongo import MongoClient 二 连接服务器 端口号 27017 连接MongoDB连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入Mong...
    99+
    2023-01-31
    操作 Python Mongodb
  • 使用MongoDB操作文档
    目录一、插入文档1、使用insert()方法插入文档2、使用save()方法插入文档二、查询文档1、语法2、实例3、MongoDB AND条件查询4、MongoDB OR 条件查询三...
    99+
    2024-04-02
  • JMeter连接数据库的相关操作
    一、加载JDBC驱动 以Mysql数据库为例,数据库测试需要加载JDBC驱动 1、先下载mysql-connector-java-5.1.26.jar 2、打开JMeter,直接拷贝驱动jar包放到到jmeter安装目录的lib目录下或在j...
    99+
    2023-09-17
    mysql 数据库 java 测试工程师 开发平台
  • C#多线程的相关操作讲解
    一、线程异常 我们在单线程中,捕获异常可以使用try-catch,代码如下所示: using System; namespace MultithreadingOption { ...
    99+
    2024-04-02
  • 详解python的字典及相关操作
    目录什么是字典创建一个字典在原有字典上添加“键-值”对修改字典中的值删除键-值对由类似对象组成的字典遍历字典什么是字典 字典是Python中最强大的数据类型之...
    99+
    2024-04-02
  • Python中字典的相关操作介绍
    字典的添加与修改 # coding:utf-8 if __name__ == '__main__': example = {'name': 'xie', 'age': 27...
    99+
    2024-04-02
  • ElasticSearch学习之文档API相关操作
    目录前言创建文档单个数据指定ID不指定IDID唯一性控制批量数据指定ID不指定ID修改文档按照ID单个全量更新基于乐观锁全量更新部分更新按照ID批量全量更新部分更新按照条件修改修改字...
    99+
    2023-01-31
    ElasticSearch文档API操作 ElasticSearch API
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作