MongoDB设置密码登录

1.创建user administrator


> use admin
> db.createUser( { user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" 

    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" 

    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)


关于roles

官方文档:https://docs.mongodb.com/manual/reference/built-in-roles/
常用的有:

  • 数据库普通用户角色
    • read
    • readWrite
  • 数据库管理者角色
    • dbAdmin
    • dbOwner:
    • userAdmin
  • 集群管理角色
    • clusterAdmin
    • clusterManager
    • clusterMonitor
    • hostManager
  • 备份与还原角色
    • backup
    • restore
  • 所有数据库角色(对所有数据库有效)
    • readAnyDatabase
    • readWriteAnyDatabase
    • userAdminAnyDatabase
    • dbAdminAnyDatabase
  • 超级角色
    • root
  • 内部角色
    • __system

2.启用验证

/etc/mongo.conf中

security: authorization: enabled 
						
  • 1
  • 2

3.重启mongo

> sudo service mongod restart 
							
  • 1

4.再次登录即需要密码

此时可以
1. 先连接,再认证

somehow@ubuntu:/home/wwwroot$ mongo
MongoDB shell version v3.4.10 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.10 > use admin
switched to db admin
> db.auth('root','root') 1

其中1代表认证成功

2.连接时认证

mongo -u root -p root --authenticationDatabase 'admin' 
						
  • 1

类似于mysql的验证,authenticationDatabase是认证时的数据库