1.连接前的准备
这里就省略了服务器上安装的操作,跟上一节是一样的流程。
连接到远程服务器,首先需要到远程服务器上在mongoDb安装根目录下的bin文件夹(默认安装目录是C:\Program Files\MongoDB\Server\4.0\bin)找到mongod.cfg文件,打开如图
找到并将bindIp的值改成127.0.0.1,0.0.0.0
之后再到控制面板\系统和安全\Windows 防火墙\高级设置\入站规则\新建规则
依次选择 端口=>TCP=>特定本地端口号,输入,这里我是用的默认的既27017=>允许连接
这个时候我们就可以在本地中进行连接远程服务器了,打开cmd输入:
mongo host:port 如:
mongo 122.22.22.222:27017
可以看到如下图,说明已经可以访问远程服务器上的mongoDB了。
2.增加登录权限
要访问远程的服务器一定是要登录的身份验证不然就能随随便便操作了可不行,这时候在远程服务器中连接进mongoDb(cmd中输入 mongo 之后再输入 use admin)
接下来咱创建一个给予了超级管理员权限的账号
db.createUser({user:”账号”,pwd:”密码”,roles:[{“role”:”userAdmin”,”db”:”admin”},{“role”:”root”,”db”:”admin”},{“role”:”userAdminAnyDatabase”,”db”:”admin”}]})
这里提供一下相应的权限名称与解释
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
再给账号进行授权操作db.auth(“账号”,”密码”)
原来的服务是无Auth验证的,需要删除 ,(记得退出mongodb连接,输入Exit回车)在cmd中执行sc delete MongoDB
来删除win服务,然后再到服务管理中将MongoDb的服务停止,它会自动刷新一下就不在列表中显示了。
接着安装带auth验证的服务,cmd中输入mongod.exe --dbpath C:\Program Files\MongoDB\Server\4.0\data --logpath=C:\Program Files\MongoDB\Server\4.0\log\mongodb.log --logappend --auth --install
路径根据自身情况设置
我们在本地访问,输入show dbs就会看到错误提示大概意思是没权限
这个时候我们在本地的cmd中输入账号密码连接
mongo host:port/admin -u 账号 -p 密码
如 mongo 122.22.22.222:2701/admin -u root -p ******
登录成功后输入show dbs 就可以正常显示了
温馨提示,设置错了密码 可以执行这条语句来修改 db.changeUserPassword('账号','密码');