最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】远程MongoDB新增dialog数据库并新增对应用户和权限

MongoDB crifan 1961浏览 0评论

给服务器上的远程的MongoDB,去新增一个数据库dialog。并且新增对应的用户和权限。

感觉是:

需要先创建对应数据库,然后才能去添加用户的。

而创建数据库,好像就是直接去insert就可以了?

mongodb 新增数据库

MongoDB 创建数据库 | 菜鸟教程

先进去看看,当然有哪些数据库

<code>&gt; show dbs
admin   0.000GB
gridfs  8.725GB
local   0.000GB
</code>

直接用use xxx就可以创建了。

MongoDB创建数据库 – MongoDB教程™

<code>&gt; db.createUser({
...     user: "dialog",
...     pwd: “password",
...     roles: [
...         { role: "dbOwner", db: "dialog" }
...     ]
... })
Successfully added user: {
        "user" : "dialog",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "dialog"
                }
        ]
}
&gt; 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
&gt; 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
&gt; show users
{
    "_id" : "dialog.dialog",
    "user" : "dialog",
    "db" : "dialog",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "dialog"
        }
    ]
}
&gt;
</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数据库,去存储数据了。

转载请注明:在路上 » 【已解决】远程MongoDB新增dialog数据库并新增对应用户和权限

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
89 queries in 0.193 seconds, using 22.12MB memory