菜单

MongoDB 用户名密码登录

2019年2月13日 - sqlite

介绍:

作为一名开发人士都会驾驭我们做的品类都要用到数据库,数据库都必要账号和密码,然则难题来了,做的东西多了那多少个没用的账号和密码还在何地纠缠着我们。所有大家无法忍了剔除掉他。

网上广大都以2008的是剔除方案,知道我见到了那篇: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 UCR-VI 方式的访问

生儿育女中常用 UCR-VI 格局对数据库举行三番五次

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

添加用户名密码验证

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

参照链接

结语

在运用数据库的进程中,一定要注意安全危机,由于 Mongodb
的暗中认可配置,使得数据库有侵袭风险,应该给予防备。

相关文章

发表评论

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

网站地图xml地图