MongoDB 用户名密码登录

发布时间:2019-02-21  栏目:SQL  评论:0 Comments

介绍:

用作一名开发人士都会分晓大家做的花色都要用到数据库,数据库都亟需账号和密码,可是难点来了,做的事物多了那个没用的账号和密码还在哪里纠缠着我们。全部我们不可以忍了删减掉她。

网上广大都以二〇〇八的是删除方案,知道自家看来了那篇:http://stackoverflow.com/questions/349668/removing-the-remembered-login-and-password-list-in-sql-server-management-studio

Mongodb enable authentication

MongoDB
暗中同意直接连接,无须身份验证,假诺当前机械可以公网访问,且不上心Mongodb
端口(默认27017)的盛开景况,那么Mongodb就会爆发安全风险,被接纳此布置漏洞,凌犯数据库。

本子路径表达

SQL Server Management Studio 2016 delete the file C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0\SqlStudio.bin

SQL Server Management Studio 2014 delete the file C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin

SQL Server Management Studio 2012 delete the file C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin

SQL Server Management Studio 2008 delete the file C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

SQL Server Management Studio 2005 delete the file – same as above answer but the Vista path. C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

注意:AppData是2个潜藏文件夹。您必要在能源管理器中彰显隐藏的文件夹。

上边只是简述了所对应版本需求删除的文件路径。照旧必要我们手动去找到然后删除相应文件的。

当然大家也可以不这么那就复制下边的路线吧。

 

 SQL Server Management Studio 2016 :%AppData%\Microsoft\SQL Server Management Studio\12.0\

 SQL Server Management Studio 2014 :%AppData%\Microsoft\SQL Server Management Studio\12.0\

 SQL Server Management Studio 2012 :%AppData%\Microsoft\SQL Server Management Studio\11.0\

 SQL Server Management Studio 2008 :%AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\ 

 SQL Server Management Studio 2005 :%AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\   

诸如此类找到呼应版本数据库,直接复制版本后边的路径,然后在按照第2个代码路径找到需要删除的公文名即可。那样是还是不是很爽啊。

不难受到凌犯的条件

  • 使用暗中认可 mongod 命令运维 Mongodb
  • 机械可以被公网访问
  • 在公网上绽放了 Mongodb 端口

安然危机

  • 数据库隐秘败露
  • 数据库被清空
  • 数据库运维缓慢

竭泽而渔方案

1. 不准公网访问 Mongodb 端口

1.1 互连网布署

出于网络部署一碗水端平,须要按照本身实在条件展开安顿,不作冗述。大概可以从以下地点禁止。

  • 在路由器中关闭端口转载
  • 防火墙 iptables 禁止访问

1.2 验证端口能依旧不能访问格局

在外网机器命令行中运转

telnet your.machine.open.ip 27017

2. 启用验证

2.1 创设用户管理员账户

脚下数据库版本:Mongodb 3.4

行使 mongod 运行数据库
新建终端

mongod --port 27017 --dbpath /data/db1

参数专擅认同可以不加,若有自定义参数,才要充足,下同。

另起三个终端,运维下列命令

mongo --port 27017

use admin

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

协会者创制成功,以往持有了用户管理员
用户名:adminUser
密码:adminPass
接下来,断开 mongodb 连接, 关闭数据库
三个终端下 <C – c>

2.2 Mongodb 用户验证登陆

启航带访问控制的 Mongodb
新建终端

mongod --auth --port 27017 --dbpath /data/db1

当今有二种格局展开用户位置的表明
第一种 (类似 MySql)
客户端连接时,钦命用户名,密码,db名称

mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"

第二种
客户端连接后,再开展表明

mongo --port 27017

use admin
db.auth("adminUser", "adminPass")

// 输出 1 表示验证成功

2.3 创造普通用户

经过看似成立管理员账户,只是 role 有所不相同

use foo

db.createUser(
  {
    user: "simpleUser",
    pwd: "simplePass",
    roles: [ { role: "readWrite", db: "foo" },
             { role: "read", db: "bar" } ]
  }
)

方今大家有了2个普通用户
用户名:simpleUser
密码:simplePass
权限:读写数据库 foo, 只读数据库 bar。

注意
NOTE
WARN
use foo意味着用户在 foo 库中成立,就必定要 foo
库验证身份,即用户的音讯跟随随数据库。比如上述 simpleUser 尽管有 bar
库的读取权限,但是一定要先在 foo
库举办身份验证,直接访问会唤起验证战败。

use foo
db.auth("simpleUser", "simplePass")

use bar
show collections

还有某个亟需小心,如若 admin
库没有此外用户来说,即便在其他数据库中开创了用户,启用身份验证,暗许的接连格局依然会有一级权限

2.4 内建剧中人物

  • Read:允许用户读取内定数据库
  • readWrite:允许用户读写内定数据库
  • dbAdmin:允许用户在钦命数据库中施行管理函数,如索引创制、删除,查看计算或访问system.profile
  • userAdmin:允许用户向system.users集合写入,能够找钦赐数据库里创立、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户全体分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户全数数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户全体数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户拥有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户全体数据库的dbAdmin权限。
  • root:只在admin数据库中可用。一级账号,一流权限

2.5 UCRUISERI 格局的造访

生产中常用 U哈弗I 形式对数据库进行延续

mongodb://your.db.ip.address:27017/foo

加上用户名密码验证

mongodb://simpleUser:simplePass@your.db.ip.address:27017/foo

参照链接

结语

在采纳数据库的历程中,一定要注意安全风险,由于 Mongodb
的暗许配置,使得数据库有侵略危害,应该给予防范。

留下评论

网站地图xml地图