怎样提高mongodb数据库安全?教你两个办法
Admin 2021-05-14 群英技术资讯 1558 次浏览
mongodb数据库安全怎样提高?做好数据的安全防护是很重要的,因此下面给大家介绍两个提高mongodb数据库安全系数的办法,分别是禁止外网访问和为数据库设置账号密码登录权限。
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
总结
以上就是关于提高mongodb数据库安全的方法介绍,当然要保护数据库数据安全,还有其他安全防护操作,想要了解更多,可以继续关注其他相关文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
MongoDB数据库forEach语句循环遍历功能是非常常用的一个功能。采用foreach循环遍历,并每次循环允许执行一次回调函数。此外,foreach循环遍历是for循环的一种扩展,对比同浏览器端的forEach用法是一致的。
mongodb数据库的使用方法:建立一个mongo文件夹作为数据库真实存放的位置,打开cmd,输入“mongod --dbpath(路径)”命令打开数据库,再打开一个cmd输入“mongo”命令连接数据库,然后就可以进行数据库操作了。
你知道在MongoDB数据中,如何进行query查询吗?每种查询方法都有不同的查询条件,如果你想了解清楚这方面的内容,可以跟随小编来一探究竟吧!
mongodb插入时间错误的原因:存储在mongodb中的时间标准UTC +0:00,而中国的时区是+8:00;解决方法:在插入时间时用DateTime.SpecifyKind命令对时间进行处理。
MongoDB Map Reduce Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。 MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。 MapReduce 命令 以下是MapReduce的基本语法: >db.collection.mapReduce( function() {emit(key,va..
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008