新安装的MongoDB是没有账号设置的,也就是说任何人都可以连接进MongoDB,这是非常不安全的。所以我们需要对MongoDB进行设置账号,来控制对数据库的访问。
admin数据库
admin数据库是MongoDB安装时就会自动创建的.
使用:show dbs进行查看有多少个数据库:
大家可以从上面看到,新安装的MongoDB默认创建三个数据库,admin、config、local.
- config数据库暂时不知道用处,如果谁知道,忘告知。
- local数据库内部有一个startup_log的集合,内部存储了连接MongoDB的记录信息。
对于admin数据库,这是一个比较特殊的数据库,具有一些普通数据库没有的功能,比如有些用户账号被赋予能够操作对个数据库的权限,这些角色就只能在admin中创建,比如能够操作所有数据库的超级用户,当然普通数据库也可以创建用户,但是普通数据库创建的用户只能用于创建用户的数据库。当连接验证用户的时候,MongoDB会从指定数据库的用户与admin的用户检查用户信息。
进入admin:
创建用户的格式:
{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ], authenticationRestrictions: [ { clientSource: ["<IP>" | "<CIDR range>", ...] serverAddress: ["<IP>" | "<CIDR range>", ...] }, ... ] }
用户角色可选:
例子:
db.createUser({ user: "hmy", pwd: "123456", roles: [{ role: "root", db: "admin" }] })
就是创建名为hmy的root用户,密码是123456,操作的数据库是admin
6. 查看用户 show users 7. 删除用户 删除用户必须由账号管理员来删,所以,切换到admin角色 use admin db.auth("admin","password") 删除单个用户 db.system.users.remove({user:"XXXXXX"}) 删除所有用户 db.system.users.remove({})
修改用户账号:
对于用户的账号的修改维护,MongoDB提供了一些方法,由于方法都比较简单,我这里就不做演示了,下表为方法列表:
删除用户:
删除用户,MongoDB提供了三个方法,
db.removeUser(username):这个方法是2.6版本以前的删除用户的方法,2.6版本以后不建议使用,虽然该方法也能够删除用户,但会报不建议使用的警告。
db.dropUser(username):这个方法是上个方法的替代方法
db.dropAllUsers():删除当前数据的所有用户
附上客户端连接mongo