MongoDB数据库用户名和密码的设置

首先是对MongoDB用户和权限的设置,若是不设置用户的话,直接使用mongo命令就能够进入客户端shell界面进行操做了,可是若是没有设置用户的话,总感受少了点什么,因而通过半天的查找和实践,差很少把用户和权限弄明白了。总结以下:mongodb

若是按照如下这个指令安装的话: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"less

Fri Apr 05 13:47:43.164ui

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.spa

Fri Apr 05 13:47:43.169code

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

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

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" }

>

相关文章
相关标签/搜索