加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

mongoDB数据库设置用户名及密码

(2014-01-17 16:39:24)
分类: tiaozhanbei

MongoDB数据库在默认是没有用户名及密码,不用安全验证的,只要连接上服务就可以进行CRUD操作。


第一部:开启安全性验证


如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查,有两种方式:

第一种:重新创建window service服务器,在创建服务时打开安全性验证。

1. 首先使用管理员身份打开cmd.exe,启动cmd命令窗口。

2. 在窗口中输入mongod --auth --logpath "D:\Program Files\mongodb\data\log\MongoDB.log" --logappend --dbpath "D:\Program Files\mongodb\data\db" --directoryperdb --reinstall命令,如下:

http://img.blog.csdn.net/20130823154047046?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

上面显示,首先会移除已创建的window service服务,然后再次创建window service服务并开启安全性验证。


第二种:直接开启安全性验证

1. 首先使用管理员身份打开cmd.exe,启动cmd命令窗口。

2. 在窗口中输入mongod --dbpath "D:\Program Files\mongodb\data\db" --logpath "D:\Program Files\mongodb\data\log\MongoDB.log" --auth,如下:

http://img.blog.csdn.net/20130823153919468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。


第二部:创建用户

定位到D:\Program Files \mongodb\bin,使用mongo.exe进入mongodb的命令行管理。

键入命令:

>use admin

>db.addUser(“root”, “root”)

现在我们为mongodb的admin数据库添加一个用户root,密码也是root,mongodb可以为每个数据库都建立权限认证,也就是你可以指定某个用户可以登录到哪个数据库。上面的代码,我们为admin数据库添加了一个root用户,在mongodb中admin数据库是一个特别的数据库,这个数据库的用户,可以访问mongodb中的所有数据库。

如果你要为test数据库,设置一个用户,使用如下命令:

>use test

>db.addUser(“test”, “test”)

好了,现在我们已经为mongodb设置了一个全局用户root,接下来先重启mongodb,使创建的用户生效。


用户登录:

首先需要使用“use 数据库名称,如: use admin”跳转到当前数据库模式下,然后用户登录,如下:

http://img.blog.csdn.net/20130823154552500?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

上面1表示登录成功,0表示登录失败。


查看当前mongodb数据库所有数据库信息:

在特权用户root下,admin数据库下的用户是超级用户。

http://img.blog.csdn.net/20130823154911578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

上面显示所有数据库名称,数据库大小。


system.user用户

每个数据库的用户账号都是以文档形式存储在system.users集合里面的, 
文档结构{'user':username, 'readOnly':true, 'pwd': password hash}。password hash是根据用户名和密码生成的散列。
http://img.blog.csdn.net/20130823155730718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast


查询某个数据库下的用户db.system.users.find(); 
删除某个数据库下的所有用户db.system.users.remove(),删除指定用户db.system.users.remove({'user':'用户名'})

http://img.blog.csdn.net/20130823155439437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3ljZjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有