Mongodb账户管理

 

介绍

Mongodb是一个schema free的非sql类分布式数据库,可以利用它做很多很灵活的存储和操作,最近了解了下它的账户机制,通过设置auth启动方式可以对所有登陆用户做各种操作的限定。

认证方式登陆mongodb

sudo ./bin/mongod --auth -dbpath=/usr/local/mongodb/data/db --port 27017 -logpath=/usr/local/mongodb/log --logappend

dbpath和logpath需要自己提前单独的创建好目录。
-auth: 表示通过认证方式登陆mongodb

不过在用auth方式启动mongodb服务器之前,需要创建一个可以管理所有用户的账户(一般在admin数据库中),如:

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

创建了一个“root”账户,它的role(即权限范围)是“userAdminAnyDatabase”,即可以admin权限管理任意的数据库的用户。

如果不使用“use admin”,那会在当前数据库创建user,不指定db的登陆会默认在test数据库中,createUser中的role指定了权限类型,roles中的“db”指定了作用域的数据库。

设置以auth方式登陆之后,client端通过mongo登陆mongodb,是必须加上“--authenticationDatabase”选项的,“authenticationDatabase”指定了校验用户账户名和密码的数据库,例如:

./bin/mongo mytest -u "test" -p "123" --authenticationDatabase admin
  • 紧接着mongo命令后面的“mytest”指定了登陆之后所在的数据库,即成功登陆之后会直接跳转到该数据库,不写默认是test数据库。
  • --authenticationDatabase 指定的是验证用户名和密码的数据库,也就是说在哪个数据库创建的登陆用户,就写哪个数据库,如上例中,user=“test”和passwd=“123”是在admin db中创建的。
  • 如果目的既是登陆test数据库,而用户也是test数据库中创建,那么可以不用写后面的参数 --authenticationDatabase,如下也可以登陆:
./bin/mongo mytest -u "test" -p "123"

mongodb关闭

不要kill -9 pid 方式关闭mongodb的进程,这样会有很多服务资源没法回收,应该使用

kill -2 pid

或者

db.shutdownServer()

转载:https://www.jianshu.com/p/88e0d33a6201

Mongodb账户管理的更多相关文章

  1. MySQL之账户管理

    MySQL之账户管理 账户管理是MySQL用户管理最基本的内容.包括登录,退出MySQL服务器.创建用户.删除用户.密码管理和权限管理等内容. 其中登录方式非常简单,在这个地址有:http://www ...

  2. MongoDB基本管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...

  3. NoSQL学习二:MongoDB基本管理命令

    MongoDB命令学习  一.MongoDB命令帮助 在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控: 这是MongoDB最上层 ...

  4. [Winform]一个简单的账户管理工具

    最近一直觉得注册的账户越来越多,帐号密码神马的容易弄混.自己就折腾了一个简单的账户管理工具,其实实现也挺简单,将每个账户的密码及相关密码提示信息,经aes算法加密之后保存到数据库,当前登录用户可以查询 ...

  5. MongoDB权限管理之用户名和密码的操作

    MongoDB默认是不需要输入用户名和密码,客户就可以登录的.但是出于安全性的考虑,我们还是要为其设置用户名和密码.本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助. 本 ...

  6. CentOS下的账户管理

    在Linux中,每个文件都分3类权限:账户本身的权限,账户所在群组的权限和其它权限.账户和群组是多对多的关系,即一个账户可以属于多个群组,一个群组可以包含多个账户.但是,对于每一个已登录的账户,只能存 ...

  7. Windows Services windows域账户管理

    windows  域账户管理 一.什么是域账户: 域账户是域是网络对象的分组.例如:用户.组和计算机.域中所有的对象都存储在 Active Directory 下.Active Directory 可 ...

  8. MySQL账户管理

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  9. mysql的账户管理

    mysql中账户管理:1 查看所有用户: 所有用户及权限信息都存储在mysql数据库中的user表中 查看user表的结构 desc user\G; 主要字段: host: 表示允许访问的主机 use ...

随机推荐

  1. Python习题002

    作业1:判断某一个字符串是否是小数 def is_float(string): string1 = str(string) if string1.count('.') > 1: #检测字符串小数 ...

  2. 【解决方法】You seem to have the current working directory in your LD_LIBRARY_PATH environment variable.

    参考地址:https://blog.csdn.net/qq_24755999/article/details/78722788 You seem to have the current working ...

  3. 从业务流程角度:分析TMS系统各个功能模块

    TMS的主要功能是协调承运商.运营商.货主三种角色人员分工合作共同完成运输任务,并实现对运输任务的跟踪管理.本文将按照业务流程顺序对TMS系统各个功能模块进行分析说明. 一.业务描述 新零售的兴起及& ...

  4. (四)Maven中的仓库

    一.分类 maven的仓库只有两大类: 1.本地仓库 2.远程仓库,在远程仓库中又分成了3种: 2.1 中央仓库 2.2 私服 2.3 其它公共库 二.本地仓库 本地仓库,顾名思义,就是Maven在本 ...

  5. HelenOS

    HelenOS 来源 http://www.helenos.org/ 关于HELENOS HelenOS是一种基于便携式微内核的多服务器操作系统,从头开始设计和实现.它将关键操作系统功能(如文件系统, ...

  6. [转载]JDK、SDK、J2EE、J2SE、J2ME的区别

    [转载]JDK.SDK.J2EE.J2SE.J2ME的区别 来源: https://www.cnblogs.com/liangyihui/p/5905875.html Java的名词真的是多啊 JDK ...

  7. [转载]Linux 命令详解:./configure、make、make install 命令

    [转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...

  8. VBA连接操作符

    VBA支持以下连接运算符. 假设变量A=5,变量B=10,则 - 运算符 描述 示例 + 将两个值添加为变量,其值是数字 A + B = 15 & 连接两个值 A & B = 510 ...

  9. selenium实现登录百度(自动识别简单验证码)

    需要做的工作 0.工程结构 1.代码: ①baidu_login.py import re import os import sys import time import random from se ...

  10. wsl2 debian安装docker

    应用商店下载debian 安装docker 安装依赖 打开安装好的docker安装依赖 sudo apt-get install apt-transport-https ca-certificates ...