给服务器上的远程的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数据库,去存储数据了。