前提条件:具备管理员账号
注意:MongoDB原生特性:账号都在特定的库里认证,不像mysql使用全局认证,也就是说登录时mysql不需指定认证的库,而mongo的账号在特定的库中,admin库或者普通库,因此登录时需指定--authenticationDatabase <dbname> 指定创建User的数据库;在特定的数据库中创建User,该DB就是User的authentication database。在连接mongo时,使用参数 --authenticationDatabase,会认证 -u 和 -p 参数指定的账户和密码。如果没有指定验证数据库,mongo使用连接字符串中指定的DB作为验证数据块。
---
查看所有用户
use admin /使用admin库
show users
---
创建只读用户
use admin /使用admin库
db.createUser({user:'readonly',pwd:'123456',roles:['readAnyDatabase']}) /创建具有所有库只读的readonly账号。
---
创建读写用户
use admin /使用admin库
db.createUser({user:'rw',pwd:'123456',roles:['readWriteAnyDatabase']}) /创建具有所有库读写的账号。
---
创建单库只读,读写用户
use admin /使用admin库,也可以在use 单库,这样登录时需使用该库做认证
---
更新用户权限
use admin /使用admin库
---
增加用户权限
use admin /使用admin库