加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB怎么样提高安全性,从什么方面着手

发布时间:2023-09-01 15:17:32 所属栏目:系统 来源:
导读:这篇文章给大家分享的是“MongoDB怎么样提高安全性,从什么方面入手”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。

那么我将从两个方面提高
这篇文章给大家分享的是“MongoDB怎么样提高安全性,从什么方面入手”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。
 
那么我将从两个方面提高mongo数据库的安全防护系数
 
1.设置mongodb外网禁止访问
 
          启动数据库时,额外添加--bind_ip 127.0.0.1即可
 
 ./mongod --bind_ip 127.0.0.1 --dbpath /data/db --auth
 
       也可以通过修改/etc/mongod.conf文件添加一行代码
 
#只监听本地接口,多个接口用,隔开
 
bind_ip = 127.0.0.1
 
2.为数据库设置账号密码登录权限
 
         为了保证数据库需要账号密码才能连接,那么在启动数据库的时候需要添加auth参数
 
./mongod --dbpath /data/db --auth
 
         也可以通过修改/etc/mongod.conf文件添加一行代码
 
  auth = true
 
        这样在进行数据库连接的时候需要相应的账号密码才能成功访问。
 
        如果之前数据库未设置账号密码的话,那么需要先添加一个管理员账户,
 
> use admin
 
switched to db admin
 
> db.createUser({user:"root",pwd:"123456",roles:["userAdminAnyDatabase"]})
 
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
 
        此时我们就成功的创建了一个管理员账户 账户名 root  密码 123456 ,此时执行show dbs会出现如下报错
 
> show dbs
 
2017-12-03T22:14:58.418+0800 E QUERY  [thread1] Error: listDatabases failed:{
 
  "ok" : 0,
 
  "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
 
  "code" : 13,
 
  "codeName" : "Unauthorized"
 
} .....
 
上边提示意为当前admin数据库未经授权无法执行指令,因此需要以管理员身份登录验证,如下操作
 
> db.auth('dpd','123456')
 
上边执行登录操作,输出结果 1,说明登录成功。此时再执行 show dbs 则会成功输出结果。此刻我们是以管理员的身份登录数据库,如果切换到test数据库,执行db.blog.insert({name:1})会报错如下,同样意为该数据库未经授权无法操作:
 
> use test
 
switched to db test
 
> db.blog.insert({name:1})
 
WriteResult({
 
  "writeError" : {
 
    "code" : 13,
 
    "errmsg" : "not authorized on test to execute command { insert: \"blog\", documents: [ { _id: ObjectId('5a240d8e2d43081ea4271cc8'), name: 1.0 } ], ordered: true }"
 
  }
 
})
 
所以要为test数据库添加一个用户,并以该用户身份登录才可以执行对该数据的操作。
 
> db.createUser({user:'use1',pwd:'123456',roles:["readWrite"]})
 
Successfully added user: { "user" : "use1", "roles" : [ "readWrite" ] }
 
> db.auth('use1','123456')
 
1
 
> db.blog.insert({name:1})
 
WriteResult({ "nInserted" : 1 })
 
>
 
至此,完成了通过账号和密码登录权限对数据库的访问和操作。
 
那么最终标准的连接test数据库的URI语法如下:
 
mongodb://use1:123456@localhost:27017/test
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章