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

MongoDB 的用户认证

2016-09-12 19:59 483 查看

MongoDB 2.2 的认证

https://docs.mongodb.com/v2.2/administration/security/

提供了数据库级别的用户身份认证和授权

用户认证授权信息保存在每个数据库的 db.system.users 集合中

用户对数据库的操作权限有:只读和读写两种

具有读写权限的用户可以为该数据库添加其它用户

对 admin 数据库具有读写权限的用户,可以读写访问其它所有数据库

对 admin 数据库具有只读权限的用户,可以只读访问其它所有数据库,除了写 admin.system.users

MongoDB 要求首先在 admin 上创建一个管理员用户,再通过此管理员去管理其它普通用户

建管理员用户

use admin
db.addUser("admin","admin")


建普通用户

use admin
db.auth("admin","admin")

use 数据库
db.addUser("用户名","密码", 是否只读)


MongoDB 2.4 的认证

https://docs.mongodb.com/manual/release-notes/2.4/#security-enhancements

https://docs.mongodb.com/v2.4/reference/security/

引入了基于角色的权限模型

引入了新的权限配置文档

仍然兼容旧的 2.2 版本的权限模型(目前 DBA 线上数据库用的就是旧版的方式)

建管理员用户

use admin
db.addUser({user:"admin",pwd:"admin",roles:["userAdminAnyDatabase"]})


建普通用户

use admin
db.auth("admin","admin")

use 数据库
db.addUser({user:"用户名",pwd:"密码",roles:[角色,...]})


支持跨库授权(仅限于对 admin 库用户授予其它库的角色)

use admin
db.addUser( { user: "Carlos",
pwd: "Moon1234",
roles: [ "clusterAdmin" ],
otherDBRoles: { config: [ "readWrite" ]
} } )


MongoDB 2.6 的认证

https://docs.mongodb.com/v2.6/release-notes/2.6/#security-improvements

https://docs.mongodb.com/v2.6/security/

支持自定义角色(admin.system.roles)

权限的粒度支持到集合级别

全局用户管理。用户信息统一保存到 admin 库(admin.system.users)

提供了一套新的管理命令

建管理员用户

use admin
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)


建超级管理员用户。root 角色拥有最大的权限。通常用于执行集群配置等操作

use admin
db.createUser(
{
user: "superuser",
pwd: "12345678",
roles: [ "root" ]
}
)


建普通用户

use 数据库
db.createUser(
{
user: "用户名",
pwd: "密码",
roles: [ { role: "read", db: "db1" }, {role:"readWrite", db: "db2"}, ... ]
}
)


MongoDB 3.0 的认证

https://docs.mongodb.com/v3.0/release-notes/3.0/#security-improvements

https://docs.mongodb.com/v3.0/security/

新版本的默认认证机制为 SCRAM-SHA-1,也仍支持旧版的 MONGODB-CR

对 Localhost Exception 采取更加严格的限制



MongoDB 3.2 的认证

https://docs.mongodb.com/v3.2/security/

没有新变化

-eof-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb