ser: "dbabd_user",
roles:
[
{ role: "readWrite", db: "admin" },
{ role: "dbabd", db: "admin" }
]
}
)
更新用户信息
更新用户dbabd_user具有admin数据库readWrite角色为read角色。
> use admin
> db.updateUser(
"dbabd_user",
{
customData: { info: "user for dbabd" },
roles: [
{ role: "dbabd", db: "admin" },
{ role: "read", db: "admin" }
]
}
)
或
> use admin
> db.runCommand(
{
updateUser: "dbabd_user",
customData: { info: "user for dbabd" },
roles: [
{ role: "dbabd", db: "admin" },
{ role: "read", db: "admin" }
]
}
)
为用户回收角色
用户dbabd_user回收admin数据库的read角色。
> use admin
> db.revokeRolesFromUser(
"dbabd_user",
[
{ role: "read", db: "admin" }
]
)
或
> use admin
> db.runCommand(
{
revokeRolesFromUser: "dbabd_user",
roles:
[
{ role: "read", db: "admin" }
]
}
)
更改用户密码
更改用户dbabd_user密码为dbabdnew。
> use admin
> db.changeUserPassword("dbabd_user", "dbabdnew")
删除用户
删除用户dbabd_user。
> use admin
> db.dropUser("dbabd_user")
或
> use admin
> db.runCommand({ dropUser: "dbabd_user" })
关于更多用户管理操作信息可以参考官方文档说明:https://docs.mongodb.com/manual/reference/method/js-user-management/
总结
一直以为MongoDB对于安全性能不是特别重视,在重新阅读了最新版本的官方文档之后有了很大的改观,对于基于角色的用户访问控制能够更为精细地控制访问用户的权限。在新的版本当中对于密码加密机制以及加密算法都做了很大的改进与提升,通过这次总结梳理可以给本文总结如下:
- MongoDB中角色和用户是建立在数据库中的;
- 在哪个数据库中创建用户就需要在哪个数据库中进行验证;
- 为了更好对用户权限进行控制,最好为每个用户创建一个自定义角色。
参考
https://docs.mongodb.com/manual/tutorial/enable-authentication/
https://docs.mongodb.com/manual/reference/command/nav-role-management/
https://docs.mongodb.com/manual/reference/command/nav-user-management/
☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆