• MongoDB的访问权限和用户设置


    今天第一次学习MongoDB,完成了MongoDB的安装,并写了一个JAVA小程序 来对MongoDB进行操作但是发现一个问题,MongoDB不需要MySQL那样,访问时要输入用户名和密码,这对数据的安全来说,是有问题的,所以又 Google了一下,来解决MongoDB的访问权限和用户设置问题。

    1、输入命令:show dbs,很多教程说MongoDB内置了两个数据,一个是admin,一个是local,但是我的库中只有一个local数据库,不知道是不是刚安装好,默认是没有的。但后来用的时候,发现这不影响,只要按下列步骤走就行了。

    2、输入命令:use admin,没错只要敲这个命令就行了,原本没有admin数据库没有关系,这个表等同于MySQL中的user表,用于存放超级管理员的。

    3、输入命令:db.addUser('sa','123'),添加一个用户sa,密码123的超级管理员用户。然后我们看看连接MongoDB有没有提示输入用户名和密码,我们先退出来(ctrl + c)。

    4、输入命令:use admin

    5、输入命令:show collections,查看库下所有的表,你会发现,MongoDB并没有提示你输入用户名、密码。哎呦,奇怪哦。没事,接着往下走……

    6、打开注册表,找到MongoDB的节点HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MongoDB下,在它的ImgPath中,加入--auth,如下所示:

    "E:\mongodb\bin\mongod.exe" --logpath "E:\mongodb\log\MongoDB.log" --auth --logappend --dbpath "E:\mongodb\data" --directoryperdb --service 然后重启MongoDB服务(在控制面板下的服务)(不知道--auth的位置是不是有限制,我放在service前面,结果重启MongoDB的时候报 错)

    7、输入命令:use admin

    8、输入命令:show collections,我们发现已经无法访问该库下的集合了,提示错误:

    Tue Dec 25 13:25:13 uncaught exception: error: {
    "$err" : "unauthorized db:admin ns:admin.system.namespaces lock type:0 client:127.0.0.1","code" : 10057
    }

    很明显,提示说没有访问权限,接下来我们设置用户名和密码了,请看下面

    9、输入命令:db.auth('sa','123'),结果是1,说明用户名密码正确,如果不对的话会输出0

    10、输入命令:show collections,结果就出来了

    11、如果我们新建一个数据库,如TestDB,发现用sa, 123是不能登录的,而通过先登录admin,然后转到TestDB才能访问通,为什么这个问题留到后面解决,如果网友知道的话,欢迎留言

    12、新建数据库,输入命令:mongo TestDB

    13、输入命令:db.addUser('test','test'),然后退出(ctrl + c)

    14、输入命令:use TestDB

    15、输入命令:show collections.提示没有权限

    16、输入命令:db.auth('test','test'),输出结果1,表示用户通过验证

    17、输入命令:show collections,即可显示结果了

    admin数据库中的用户被视为超级用户(即管理员),所以通过admin可以进入MongoDB的其它数据库,而当你不想只是通过admin进入其他数据库时,你必须为其他每个数据库单独建立账户

    以上如果有错误,忘网友批评指正!

  • 相关阅读:
    Codeviz 分析kernel源程序
    PHP ORACLE 之 "团队合作"[工作中小结]
    关于Xwork的配置对象和XWork第一个程序
    Linux 动态和静态库小结(1)
    XEN Architecture Overview
    Linux Serial Console 配置小结
    使用Bochs调试Linux kernel 随笔 准备
    前端储存的方式
    如何在asp.net webform下使用rdlc
    (原创)mvc中ajax.beginform重复提交的问题解决
  • 原文地址:https://www.cnblogs.com/dingshuangxi888/p/2881977.html
Copyright © 2020-2023  润新知