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. 使用redis和thread告警并避免重复告警

    spring cloud使用redis 增加监控,微服务的监控体系特别重要,这里增加了告警(使用thread异步告警),同时不能短时间内不能重复告警(使用redis避免重复) 1.增加依赖       ...

  2. char. 类型篇

    对于强类型的c语言,类型贯穿着整个语言体系,掌握好类型,学c语言就相当上手 .. 计算机的内存被分成一个个的储存单元.     一个储存单元=1 byte=8 bit 对于基本整型类型.char  = ...

  3. Scratch技巧—-使用克隆技术实现菜单按钮

    昨天讲了克隆技术的一个具体应用:生成菜单按钮.有的小朋友迫不及待的试验了一下,发现菜单按钮是生成了,但是如何触发相应的按钮功能呢?触发功能的处理代码也是在克隆体里面实现哦.请看案例: 启动程序时,先隐 ...

  4. 0160 十分钟看懂时序数据库(I)-存储

    摘要:2017年时序数据库忽然火了起来.开年2月Facebook开源了beringei时序数据库:到了4月基于PostgreSQL打造的时序数据库TimeScaleDB也开源了,而早在2016年7月, ...

  5. Unity性能优化-对象池

    1.对象池Object Pool的原理: 有些GameObject是在游戏中需要频繁生成并销毁的(比如射击游戏中的子弹),以前的常规做法是:Instantiate不断生成预设件Prefab,然后采用碰 ...

  6. ...:ES6中扩展运算符(spread)和剩余运算符(rest)详解

    1.扩展运算符(spread) demo1:传递数据代替多个字符串的形式 let test= function(a,b,c){ console.log(a); console.log(b); cons ...

  7. (三十一)web 开发基础项目

    1. 编写index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  8. CAN总线上的消息单帧某个信号的值计算(C#)

      public static ulong GetMotorolaSignalValue(byte[] data, int startBit, int bitLength) { ; , j =; i ...

  9. 安装Nvida 显示环境

    查看是否能正确加载nvidia 驱动 在终端输入 (glxinfo 需要安装mesa-utils) 如果可以正确加载了nvidia驱动 那么在输入的内容中可以看到NVIDIA 字样 如果GPU是Int ...

  10. html5+css3 快速学习

    http://kuai.qietu.com/books/html5_preview/index.htm#slide1