zoukankan      html  css  js  c++  java
  • MongoDB数据库用户名和密码的设置

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

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

    mongod --install --dbpath "C:Program Filesmongodbdatadb" --logpath "C:Program FilesmongodbdatalogMongoDB.log"

    如下:

    c:Program Filesmongodbin>mongod --install --dbpath "C:Program Filesmongodbdatadb" --logpath "C:Program FilesmongodbdatalogMongoDB.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 Filesmongodbin>net start MongoDB

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

    c:Program Filesmongodbin>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 Filesmongodbin>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 Filesmongodbin>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" }

    >

  • 相关阅读:
    Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
    聊聊程序员如何学习英语单词:写了一个记单词的小程序
    ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
    关于开启.NET在线提升教育培训的通知!
    彻查手机端浏览博客园出现广告一事!
    ASP.NET Aries 入门开发教程9:业务表单的开发
    ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
    ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
    ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
    ASP.NET Aries 入门开发教程5:自定义列表页工具栏区
  • 原文地址:https://www.cnblogs.com/running-mydream/p/4894868.html
Copyright © 2011-2022 走看看