您的位置:首页 > 数据库 > Mongodb

Mongodb权限管理

2015-11-24 14:56 477 查看
本文列出最基本的添加用户、删除用户等操作。
配置和环境:
win10(本机)和linux(CentOs7)内网服务器各一台。Mongodb3.07

一、添加用户
mongodb安装好后,默认是没有用户的。首先在不进行认证方式的情况下启动mongo
# mongod
先说个重要的事儿,如果需要用客户端软件连接mongodb的话,需要修改认证版本,然后再添加用户:
> use admin
switched to db admin
>  var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3 3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

用户有很多种,列出常见几种的添加方式:
添加超级用户

> db.createUser({
user:"root",
pwd:"123456",
roles:["root"]
})
添加用户管理员

> db.createUser({
user:"admin",
pwd:"123456",
roles:[{
role:"userAdminAnyDatabase",
db:"admin"
}]
})
添加普通读写用户

> db.createUser({user:"test",pwd:"123456",roles:[{role:"readWrite", db:"test"}]})


查看添加的用户情况:

> use admin
> db.system.users.find();
{ "_id" : "admin.root", "user" : "root", "db" : "admin", "credentials" : { "MONGODB-CR" : "b00a366ac2810fb995d556ee159aa35e" }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
...
删除用户:

db.dropUser("test");


二、开启权限认证
首先关闭mongo,

> db.shutdownServer();
如果由于某些原因关不掉就kill掉。
然后带auth参数重新启动:
# mongod --auth
之后的操作就涉及到权限了,例如查询系统用户时,需要认证,查看库数据也需要认证。认证方式:
> use admin
switch to db admin
> db.auth("admin", "123456");
1
...
> use test
swtich to db test
> db.auth("test", "123456");
1
认证成功就是1,否则返回0和对应出错信息。
如果开启了认证,记得用客户端操作时也要先进行认证,否则有些客户端不会返回任何信息。

本文出自 “技术成长点滴” 博客,请务必保留此出处http://fykknd.blog.51cto.com/3175618/1716369
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: