这是一个完整的解决方案,包括创建“超级用户”,能够访问任何资源并执行任何操作。
第一:首次访问 MongoDB 时无需身份验证 ( $ mongo)。
第二: MongoDB的配置文件可能会有所不同,具体取决于您使用的版本(3.x:mongod.conf / 2.x:mongodb.conf)
> use admin
switched to db admin
> db.createUser( {user:"mongo", pwd:"mongo", roles:["root"]} )
Successfully added user: { "user" : "mongo", "roles" : [ "root" ] }
Run Code Online (Sandbox Code Playgroud)
> db.getUser("mongo")
{
"_id" : "admin.mongo",
"user" : "mongo",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> db.auth("mongo","mongo")
1
Run Code Online (Sandbox Code Playgroud)
检查哪个配置文件正在使用 MongoDB
$ ps aux | grep mongo
mongodb 12583 0.5 3.4 2381948 281140 ? Sl 18:34 0:06 /usr/bin/mongod --config /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)
MongoDB 3.x
$ grep -A 1 security /etc/mongod.conf
security:
authorization: enabled
Run Code Online (Sandbox Code Playgroud)
MongoDB 2.x
$ grep -B 2 auth=True /etc/mongodb.conf
# Turn on/off security. Off is currently the default
#noauth = true
auth=True
Run Code Online (Sandbox Code Playgroud)
$ /etc/init.d/mongodb restart
Run Code Online (Sandbox Code Playgroud)
$ mongo -u mongo -p --authenticationDatabase admin
MongoDB shell version v3.4.3
Enter password: **********
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3
> show dbs
admin 0.078GB
android 0.078GB
blog 0.078GB
games 0.078GB
school 0.078GB
Run Code Online (Sandbox Code Playgroud)
注意:您只需点击mongo并打开 Mongo Shell,但它不会让您执行任何操作,因为您之前未经身份验证。
$ mongo
MongoDB shell version v3.4.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3
> show dbs
2017-10-03T19:04:55.953+0000 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:761:19
shellHelper@src/mongo/shell/utils.js:651:15
@(shellhelp2):1:1
>
Run Code Online (Sandbox Code Playgroud)
对于删除用户:
> use admin
> db.dropUser("myuser")
Run Code Online (Sandbox Code Playgroud)
参考:
| 归档时间: |
|
| 查看次数: |
9869 次 |
| 最近记录: |