给服务器上的远程的MongoDB,去新增一个数据库dialog。并且新增对应的用户和权限。
感觉是:
需要先创建对应数据库,然后才能去添加用户的。
而创建数据库,好像就是直接去insert就可以了?
mongodb 新增数据库
先进去看看,当然有哪些数据库
<code>> show dbs admin 0.000GB gridfs 8.725GB local 0.000GB </code>
直接用use xxx就可以创建了。
<code>> db.createUser({
... user: "dialog",
... pwd: “password",
... roles: [
... { role: "dbOwner", db: "dialog" }
... ]
... })
Successfully added user: {
"user" : "dialog",
"roles" : [
{
"role" : "dbOwner",
"db" : "dialog"
}
]
}
> show users
{
"_id" : "dialog.dialog",
"user" : "dialog",
"db" : "dialog",
"roles" : [
{
"role" : "dbOwner",
"db" : "dialog"
}
]
}
</code>好像就可以了?
然后Mac本地的mongo客户端是可以进去的,也是可以看到用户的:
<code>➜ crifan.github.io git:(master) mongo 47.x.x.x:12345/dialog -u dialog -p password --authenticationDatabase dialog
MongoDB shell version v3.6.3
connecting to: mongodb://47.x.x.x:12345/dialog
MongoDB server version: 3.2.19
WARNING: shell and server versions do not match
> show dbs
2018-04-25T15:28:29.733+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:816:19
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1
> show users
{
"_id" : "dialog.dialog",
"user" : "dialog",
"db" : "dialog",
"roles" : [
{
"role" : "dbOwner",
"db" : "dialog"
}
]
}
>
</code>不过是没有权限看到其他的,比如dbs的。
【总结】
此处其实很简单,就是:
(以admin数据库的用户,之前创建的名为root)去登录在线服务器中的mongo中
<code>mongo root --port 12345 -u root -p your_password --authenticationDatabase admin </code>
然后新建对应数据库,再去在里面创建对应的用户
<code>use dialog
db.createUser({
user: "dialog",
pwd: “password",
roles: [
{ role: "dbOwner", db: "dialog" }
]
})
</code>即可。
后续就可以远端mongo的客户端,比如mongo shell,PyCharm中mongo插件,去连接了。
也可以写代码,去操作dialog数据库,去存储数据了。