1、以安全认证模式启动
复制代码 代码如下:
bin/mongod?–auth?-dbpath /Users/mc2/mongo/db -logpath /Users/mc2/mongo/log.log &
使用–auth选项启动mongod进程即可启用认证模式。
或者,也可以修改/etc/mongodb.conf,设置auth=true,重启mongod进程。
2.添加用户
复制代码 代码如下:
db.addUser([admin], [123456″)
3.安全认证
复制代码 代码如下:
db.auth([admin], [123456″)
认证成功的情况下
复制代码 代码如下:
db.system.users.find()
{ [_id] : ObjectId([5032e8386a7fc39e31978c50″), [user] : [admin], [readOnly] : false, [pwd] : [95ec4261124ba5951720b199908d892b] }
否则返回空
4.为数据库写数据(同步到磁盘)加锁
复制代码 代码如下:
db.runCommand({fsync:1,lock:1})
说明:
该操作已经对数据库上锁,不允许执行写数据操作,一般在执行数据库备份时有用。执行命令,结果示例如下:
复制代码 代码如下:
db.runCommand({fsync:1,lock:1})
{ [errmsg] : [access denied; use admin db], [ok] : 0 }
use admin
> db.runCommand({fsync:1,lock:1})
{
[info] : [now locked against writes, use db.fsyncUnlock() to unlock],
[seeAlso] : [http://www.mongodb.org/display/DOCS/fsync+Command[,
[ok] : 1
}
5、查看当前锁状态
复制代码 代码如下:
db.currentOp()
> db.currentOp()
{
[inprog] : [ ],
[fsyncLock] : 1,
[info] : [use db.fsyncUnlock() to terminate the fsync write/snapshot lock]
}
其中,fsyncLock为1表示MongoDB的fsync进程(负责将写入改变同步到磁盘)不允许其他进程执行写数据操作
6、解锁
复制代码 代码如下:
use admin
>db.fsyncUnlock()
{ [ok] : 1, [info] : [unlock completed] }
db.$cmd.sys.unlock.findOne() 效果等同
> db.currentOp()
{ [inprog] : [ ] }
说明当前没有锁,可以执行写数据操作。
查看更多关于mongodb数据库的6个安全设置命令的详细内容...