首先是对MongoDB用户和权限的设置,如果不设置用户的话,直接使用mongo命令就可以进入客户端shell界面进行操作了,但是如果没有设置用户的话,总感觉少了点什么,于是经过半天的查找和实践,差不多把用户和权限弄明白了。总结如下:

如果按照以下这个指令安装的话:

mongod --install --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log"

如下:

c:\Program Files\mongodb\bin>mongod --install --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log"

Fri Apr 05 13:47:43.164

Fri Apr 05 13:47:43.168 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.

Fri Apr 05 13:47:43.169

Fri Apr 05 13:47:43.169 Trying to install Windows service 'MongoDB'

Fri Apr 05 13:47:43.170 There is already a service named 'MongoDB', aborting

c:\Program Files\mongodb\bin>net start MongoDB

Mongo DB 服服务务已已经经启启动动成成功功。。

c:\Program Files\mongodb\bin>mongo

MongoDB shell version: 2.4.1

connecting to: test

Server has startup warnings:

Fri Apr 05 13:48:02.516 [initandlisten]

Fri Apr 05 13:48:02.516 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.

Fri Apr 05 13:48:02.516 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).

Fri Apr 05 13:48:02.516 [initandlisten] **       Note that journaling defaults to off for 32 bit and is currently off.

Fri Apr 05 13:48:02.516 [initandlisten] **       See http://dochub.mongodb.org/core/32bit

Fri Apr 05 13:48:02.516 [initandlisten]

> show dbs

admin   (empty)

local   0.03125GB

>

可以看到有两个默认的数据库admin和local

实例1:创建一个用户名为root,密码为admin的用户,如下:

> use admin

switched to db admin

> db.addUser("root","admin")

{

        "user" : "root",

        "readOnly" : false,

        "pwd" : "bde0d84f6749c235a6b4e36d945eb666",

        "_id" : ObjectId("515e662430d89f61f6991c91")

}

> show collections

Fri Apr 05 13:50:36.685 JavaScript execution failed: error: {

        "$err" : "not authorized for query on admin.system.namespaces",

        "code" : 16550

} at src/mongo/shell/query.js:L128

>

说明:使用以上指令show collections的时候,发现报错了。是因为没有权限。做如下操作:

> db.auth("root","admin");

1

说明:返回1表示验证成功了,返回0表示验证失败。

此时,输入以下指令:show collections则可以看到admin下的集合了。

> show collections

system.indexes

system.users

> db.system.users.find()

{ "_id" : ObjectId("515e662430d89f61f6991c91"), "user" : "root", "readOnly" : false, "pwd" : "bde0d84f6749c235a6b4e36d945eb666" }

>

实例2:在用户名为root,密码为admin的用户下创建一个student数据库,并在student数据库中创建一个stu的集合并插入一个文档,如下:

> use student

switched to db student

> db.stu.insert({"name":"maoyuanjun","age":25,"sex":"male"})

> db.stu.find()

{ "_id" : ObjectId("515e676630d89f61f6991c92"), "name" : "maoyuanjun", "age" : 25, "sex" : "male" }

退出服务器,重新登陆如下:

c:\Program Files\mongodb\bin>mongo

MongoDB shell version: 2.4.1

connecting to: test

> show dbs

Fri Apr 05 13:58:05.420 JavaScript execution failed: listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" }

at src/mongo/shell/mongo.js:L46

出错原因:是没有权限。则先判断是否有权限,如下:

> use admin

switched to db admin

> db.auth("root","admin")

1

> show dbs

admin   0.0625GB

local   0.03125GB

student 0.0625GB

>

这时,我们可以看到用户root,密码admin的用户下多了一个student数据库。

实例3:在创建一个用户

c:\Program Files\mongodb\bin>mongo

MongoDB shell version: 2.4.1

connecting to: test

> use admin

switched to db admin

直接添加用户会报错:

> db.addUser("test","123456")

Fri Apr 05 14:01:31.404 JavaScript execution failed: error: { "$err" : "not authorized for query on admin.system.users", "code" : 16550 } at src/mongo/shell/query.js:L128

做权限的判断:

> db.auth("root","admin");

1

> use admin

switched to db admin

> db.addUser("test",123456)

{

        "user" : "test",

        "readOnly" : false,

        "pwd" : "c8ef9e7ab00406e84cfa807ec082f59e",

        "_id" : ObjectId("515e68e2be252e81c5dee198")

}

> show collections

system.indexes

system.users

> db.system.users.find()

{ "_id" : ObjectId("515e662430d89f61f6991c91"), "user" : "root", "readOnly" : fa

lse, "pwd" : "bde0d84f6749c235a6b4e36d945eb666" }

{ "_id" : ObjectId("515e68e2be252e81c5dee198"), "user" : "test", "readOnly" : fa

lse, "pwd" : "c8ef9e7ab00406e84cfa807ec082f59e" }

>

MongoDB数据库用户名和密码的设置的更多相关文章

  1. MongoDB 添加用户名和密码

    MongoDB 添加用户名和密码 我用的是 mongodb3.6,如果没有的话先安装. sudo apt install mongodb 终端输入mongo,首先添加管理用户, show dbs // ...

  2. cassandra用户名和密码的设置

    设置Cassandra使用用户名和密码验证的步骤如下: 1.修改${CASSANDRA_HOME}/conf/cassandra.yaml,把authenticator: AllowAllAuthen ...

  3. 修改oralce数据库用户名和密码

    首先以sys用户登录数据库 一.修改用户名 查到到所需修改用户名称的用户需要:select user#,name from user$;(例如查到有一个normal的用户对应的user#=61) 修改 ...

  4. 修改oracle数据库用户名和密码

    第一步:连接数据库 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身 ...

  5. DB 从zl.xml中导入数据库用户名及密码等!

    package com.dy.java; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  6. window系统中 mongodb创建用户名和密码

    use admindb.createUser({user:"root",pwd:"root",roles:[{"role":"us ...

  7. mongodb设置用户名和密码

    需求:我们需要在一个mongodb上面新建两个数据库,每个数据库的用户名和密码不一样,讲道理来说我们直接设置admin,就可以控制所有的数据库,不过用起来总是感觉有各种问题,目前还不太熟悉mongod ...

  8. spring boot 配置文件加密数据库用户名/密码

    这篇文章为大家分享spring boot的配置文件properties文件里面使用经过加密的数据库用户名+密码,因为在自己做过的项目中,有这样的需求,尤其是一些大公司,或者说上市公司,是不会把这些敏感 ...

  9. 使用navicat 使用IP、用户名、密码直接连接linux服务器里面的数据库

    一般新申请的服务器,没有开通3306端口的吧,反正我遇到的,要用Navicat去连接linux下的数据库,都必须填写两个地方的信息,才能链接成功. 如果想要只通过填写ip还有数据库用户名还有密码就可以 ...

随机推荐

  1. let与const的区别

    let与const都是只在声明所在的块级作用域内有效. let声明的变量可以改变,值和类型都可以改变,没有限制. const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不 ...

  2. 重温Bootstrap

    预热 ★ 学习要点 1. 理解其GridSystem(栅格排版): 2. 熟悉其所提供的各种CSS样式及显示效果: 3. 知道提供了哪些直接可用的UI组件,以及如何使用JavaScript去调整其交互 ...

  3. datagridview 单元格格式转换注意

    datagridview 单元格内容进行比较时要注意正确写法要用强制转换,否则出错Convert.ToString(grd_order.SelectedRows[0].Cells[1].Value)= ...

  4. C# Socket 模拟http服务器帮助类

    0x01 写在前面 0x02 Http协议 0x03 TCP/IP 0x04 看代码 0x05 总结 0x01 写在前面 由于工作中,经常需要在服务器之间,或者进程之间进行通信,分配任务等.用Sock ...

  5. “三巨头”有变化,BAT还能走多久?

    在腾讯市值超越阿里巴巴后,市场分析多数认为,当年的BAT“三巨头”时代已经彻底结束,进入了“双寡头”时代了 从对外投资来看,BAT不同的投资逻辑可以推测其战略方向 撰文/梁云风 时评员,关注财经与互联 ...

  6. java中的对象,类。与 方法的重载。

    对象: 一切皆为对象.对象包括两部分内容:属性(名词形容词),行为(动词).对象和对象之间是有关系的: 派生,关联,依赖. 类: 对同一类别的众多对象的一种抽象.类,还是用来生成对象的一种模板,对象是 ...

  7. HTML5中使用图片传递密文

    上面的两张图片中,你能看出有什么不同吗? 右图使用 html5 canvas api 中的 getImageData 和 putImageData 函数嵌入了一段文字. 道理很简单,getImageD ...

  8. javascript执行环境(执行期上下文)详解

    javascript执行环境(执行期上下文) 当js控制器(control)进入可执行代码时,控制器会进入一个执行环境,活动的多个执行环境构成执行环境栈,最上面的是正在运行的执行环境,当控制器进入一个 ...

  9. php每天一题:strlen()与mb_strlen()的作用分别是什么

    strlen()与mb_strlen()都是用于获取字符串长度的,那么它们两个有什么不同? strlen()与mb_strlen()的不同之处在于mb_strlen()第二个参数可以用于指定字符编码. ...

  10. 更改pip源至国内镜像,显著提升下载速度(转载)

    经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...