日期:2014-05-16  浏览次数:20390 次

mongoDB 用户和权限设置
首先是官方关于安全和权限部分英文

mongodb是基于文档的库,操作模型上划分的话可以分为下面几层

根 (访问,连接)
db (库)
collection
cursor (查询数据时的数据指针)

权限部分
因为mongo默认的启动是不验证用户名和密码的,启动mongod后,可以直接用mongo连接上来,对所有的库具有root权限
启动的时候指定参数,可以从阻止根层面上的访问和连接
#只允许某ip访问
$ mongod --bind_ip 127.0.0.1

#指定服务端口
$ mongod --port 27017

#指定数据存放路径
mongod.exe –port 11111 –dbpath E:\data\mongodb

#启动服务器时可选择用户验证模式,可连接,默认登录到test,无任何权限 (db层)
#每次启动时设定生效
$ mongod --auth

#用户登录后验证
> use dbtest
switched to db dbtest
> db.auth('userx','psw');
1

#mongodb中设置用户名密码
$ mongo
#指定某个库
> use dbtest
#添加用户,密码,mongodb会自动为其加密,并且在表中生成system.users的collection,可以查询当前库用户
> db.addUser('userx','psw')
{ "user" : "userx", "pwd" : "2f09b653fdf3627a8fc6367f19b67c28" }
> db.system.users.find()
{ "_id" : ObjectId("4beb6a09ee63be17c992d8e0"), "user" : "userx", "pwd" : "2f09b653fdf3627a8fc6367f19b67c28" }

#删除用户
> db.system.users.remove({'user':'userx'});

#关于库权限,如果用户需要全局的权限,可以在admin和local的两个库里添加,但是需要重启库


参考:出处