授权

https://www.mongodb.com/docs/manual/reference/connection-string/#mongodb-urioption-urioption.authSource

https://blog.csdn.net/qq_38980678/article/details/114703852

window远程访问

https://blog.csdn.net/weixin_35784370/article/details/113550100

安装目录(参考)

C:\Program Files\MongoDB\Server\4.4\bin

用编辑器打开之后,需要修改的地方有共有两处

  1. network interfaces

将原本的 IP 127.0.0.1 更改为 0.0.0.0,意思是开放给所以 IP 都能访问。可以直接在后面添加指定多个IP地址127.0.0.1,192.168.1.60

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0
  1. security

    authorization: enabled

security:
   keyFile: <string>
   clusterAuthMode: <string>
   authorization: <string>
   transitionToAuth: <boolean>
   javascriptEnabled:  <boolean>
   redactClientLogData: <boolean>
   clusterIpSourceAllowlist:
     - <string>
   sasl:
      hostName: <string>
      serviceName: <string>
      saslauthdSocketPath: <string>
   enableEncryption: <boolean>
   encryptionCipherMode: <string>
   encryptionKeyFile: <string>
   kmip:
      keyIdentifier: <string>
      rotateMasterKey: <boolean>
      serverName: <string>
      port: <string>
      clientCertificateFile: <string>
      clientCertificatePassword: <string>
      clientCertificateSelector: <string>
      serverCAFile: <string>
      connectRetries: <int>
      connectTimeoutMS: <int>
   ldap:
      servers: <string>
      bind:
         method: <string>
         saslMechanisms: <string>
         queryUser: <string>
         queryPassword: <string | array>
         useOSDefaults: <boolean>
      transportSecurity: <string>
      timeoutMS: <int>
      userToDNMapping: <string>
      authz:
         queryTemplate: <string>
      validateLDAPServerConfig: <boolean>

上一步修改完成之后,其实就能共远程访问了。但这样子不好的,不安全的。需要在安全这个选项中加上验证。

这样之后并没有完,还需要为MongoDB添加用户。

添加 MongoDB 用户

添加超级管理员用户。

其中授权数据库为 admin, 授权内置角色为userAdminAnyDatabase. 角色决定对数据库的操作权限。 关于内置角色更详细的信息请防卫官网文档

db.createUser({user:'admin', pwd:'admin', roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})

添加指定数据库的用户

db.createUser({user:'user001', pwd:'user001pass', roles: [{ role: "readWrite", db: "studentDB" }]})

到这里,数据配置就完成了,如果没有防火墙限制,理论上数据库以及能够远程访问了。

三、针对服务器开放指定访问端口

由于数服务器的安全策略,数据库的端口是没有对外开发的。如MongoDB的默认端口 27017, 在完成上述配置之后仍然无法访问。但通常不能关闭防火墙,来解决端口问题,因此需要为服务器开放指定的访问端口。

本地验证连接

文档更新时间: 2022-04-09 15:55   作者:admin