MongoDB 用户名密码登录

发布时间:2019-02-19  栏目:MyBatis  评论: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是一个隐蔽文件夹。您需求在能源管理器中显示隐藏的文件夹。

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

本来大家也可以不这么那就复制上面的门路吧。

 

 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\   

那般找到相应版本数据库,直接复制版本前面的途径,然后在依据第1个代码路径找到须求删除的文本名即可。那样是或不是很爽啊。

简单蒙受凌犯的环境

  • 采纳暗中同意 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" } ]
  }
)

以后大家有了3个普通用户
用户名: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集合写入,可以找指定数据Curry成立、删除和保管用户
  • clusterAdmin:只在admin数据库中可用,赋予用户全体分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户拥有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户全体数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户全体数据库的dbAdmin权限。
  • root:只在admin数据库中可用。一级账号,超级权限

2.5 U福睿斯I 格局的造访

生育中常用 UPAJEROI 情势对数据库进行连接

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

累加用户名密码验证

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

参照链接

结语

在采取数据库的进度中,一定要注意安全危害,由于 Mongodb
的私自认同配置,使得数据库有凌犯风险,应该授予防患。

留下评论

网站地图xml地图