菜单

MongoDB 用户名密码登录

2019年2月17日 - MySQL

介绍:

作为一名开发人士都会知道大家做的门类都要用到数据库,数据库都急需账号和密码,可是难点来了,做的事物多了这几个没用的账号和密码还在何地纠缠着大家。全体大家无法忍了除去掉她。

网上广大都是二〇一〇的是剔除方案,知道自家看看了那篇: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. 明令禁止公网访问 Mongodb 端口

1.1 网络布局

由于网络陈设因人而异,须求依据本身实际条件展开安顿,不作冗述。大约可以从以下地点禁止。

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" } ]
  }
)

前天我们有了三个普通用户
用户名: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 内建剧中人物

2.5 URubiconI 格局的造访

生儿育女中常用 ULANDI 格局对数据库进行连接

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

累加用户名密码验证

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

参考链接

结语

在运用数据库的长河中,一定要注意安全危害,由于 Mongodb
的暗中同意配置,使得数据库有入侵危害,应该授予防范。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图