MongoDB权限配置

来源:互联网 发布:淘宝个人空间在哪里 编辑:程序博客网 时间:2024/05/04 01:06
MongoDB安全认证


启动MongoDB:./mongod
这种启动MongoDB是不会开启用户安全认证。


指定配置文件启动MongoDB:./mongod -f /conf/mongodb.conf
说明:MongoDB里没有这个配置文件需要自己手动创建;
我自己的配置文件在mongoDB的目录下的创建conf/mongodb.comf
dbpath = /mongodb/data //指定MongoDB的数据库
logpath = /mongodb/log/mongodb.log//指定MongoDB的日志文件路径
logappend = true //日志文件自动累加,而不是覆盖
bind_ip = 192.168.1.210 //绑定ip,启动的时候必须指定绑定的ip地址和端口号;
port = 30000 //指定端口号
fork = true //以守护进程的方式运行,创建服务器进程
auth = true //启用用户验证
master = true //单主从配置时设为主服务器
journal = true //启用 日志
参考网站:
http://my.oschina.net/zhuzhu0129/blog/53290


权限控制


MongoDB默认为无验证模式。如需对数据库进行权限控制,需先采用无验证模式登录,
进入admin库创建管理员用户后,再采用验证模式登录。
通过前面创建的管理员帐号进行数据库与用户的创建。
MongoDB集群的权限与单台的权限控制的不同之处在于,单台是通过-auth属性,
集群是通过keyFile来进行服务器间的验证。


在 admin 库中增加的用户为超级用户,权限最大,可以访问所有库。
1.在没有开启安全认证启动MongoDB
2.use admin;
3.db.addUser('用户名','密码')
只需在 addUser 命令中增加第三个参数,并指定为“true” ,即可创建只读帐号
4.db.system.users.find();查看系统用户


在数据库开启安全认证后
1.use admin
2.db.auth("管理员账号","密码") //用户认证
3.db.system.users.find();
4.show dbs;


一个MongoDB中可以有很多个数据库,用show dbs查看数据库。
创建一个数据库:
use "数据库名"
这时候数据库为空,用:
db.addUser("用户名","密码")
创建此数据库的用户
db.dropDatabase()删除当前数据库


从指定主机上克隆数据库:
db.cloneDatabase(“127.0.0.1”); 
将指定机器上的数据库的数据克隆到当前数据库


数据库命令操作
http://blog.csdn.net/wangpeng047/article/details/7705588




认证的工作原理


数据库的用户帐号以文档的形式存储在system.users集合里.文档的结构是


{
"_id" : ObjectId("5006a037dff37e149322fd83"),
"user" : "refactor_read_write",
"readOnly" : false,
"pwd" : "5a84584ac51d3f702461fce4c46b0d6b"//是根据用户名和密码生成的散列
}


3.停止MongoDB
可以使用shutdown命令{"shutdown":1},这个命令要在admin数据库下使用.
shell还提供了辅助函数:
use admin
db.shutdownServer()
0 0
原创粉丝点击