mongodb2.6以后版本管理用户

来源:互联网 发布:java职业生涯规划 编辑:程序博客网 时间:2024/06/10 16:06

原文: 点击打开链接

添加用户:
./mongo
>use admin
>db.createUser({user:’admin’,pwd:’admin123′,roles:['userAdminAnyDatabase','dbAdminAnyDatabase']})
//创建一个能管理所有数据库的账户root/root
在哪个数据库下,添加的用户就是在哪个数据库下。
可以参考本文档下方的内置角色名称,在线上环境,不同场景的操作最好使用相应的角色,以免权限滥用。

修改用户权限。

>db.grantRolesToUser(“username”,[ "readWrite" , { role: "read", db: "stock" } ])
mongod启动的时候加上 –auth 就可以添加用户验证功能。或者在启动配置文件里加上 auth=true 配置。
>./mongod –auth –dbpath XXX –logpath XXX –fork
>./mongod -f /xx/mongo.cnf
有意思的是,创建用户后,登录时,必须指定数据库名、用户名、密码才能登录。
>./mongo admin -u admin -p admin123

而且,如果创建的用户对其他数据库比如 abcdb 拥有读取或者其他权限,但是该用户是在admin数据库下建立的,依然不能登录,会报权限不够。

PS:登录时,指定的数据库名 和 使用的用户 必须是同一个数据库下才行。//不明白为什么这个搞,没有深究,都有相应的权限了,还不能登录,觉得这样设计真坑……

下方是官方2.6版本db的user操作文档:addUser() 操作已经被置为 弃用,但依然可以使用,会提示。使用新的操作API:createUser()。

NAMEDESCRIPTIONdb.addUser()Deprecated. Adds a user to a database, and allows administrators to configure the user’s privileges.db.changeUserPassword()Changes an existing user’s password.db.createUser()Creates a new user.db.dropAllUsers()Deletes all users associated with a database.db.dropUser()Removes a single user.db.getUser()Returns information about the specified user.db.getUsers()Returns information about all users associated with a database.db.grantRolesToUser()Grants a role and its privileges to a user.db.removeUser()Deprecated. Removes a user from a database.db.revokeRolesFromUser()Removes a role from a user.db.updateUser()Updates user data.
官网文档地址:
常用权限:http://docs.mongodb.org/master/reference/built-in-roles/#database-administration-roles
role 管理:http://docs.mongodb.org/master/reference/method/js-role-management/
用户管理:http://docs.mongodb.org/master/reference/method/js-user-management/

下方列出系统内置角色名称:

Database User Roles 普通用户角色

read
readWrite

Database Administration Roles 管理员角色

dbAdmin        可以管理数据库
dbOwner        单数据库最大权限,dbAdmin,userAdmin
userAdmin     可管理当前数据库用户
 

Cluster Administration Roles  管理员角色

clusterAdmin
clusterManager
clusterMonitor
hostManager

Backup and Restoration Roles  备份和恢复角色

backup
restore

All-Database Roles 所有数据库角色

readAnyDatabase       在admin下建立,可以读取所有数据库的信息
readWriteAnyDatabase  在admin下建立,可以读写所有数据库的信息
userAdminAnyDatabase  在admin下建立,可以管理所有数据库的用户
dbAdminAnyDatabase    在admin下建立,可以管理所有数据库的信息(类似于所有数据库的dbAdmin账户)

Superuser Roles

root

0 0
原创粉丝点击