Code前端首页关于Code前端联系我们

如何在mongodb(3.0+)中启用权限认证和远程连接?

terry 2年前 (2023-09-26) 阅读数 98 #数据库

当我开发fragmentwall时,我最初是在本地开发的。我部署到服务器的时候,需要在本地连接mongodb服务器数据,这涉及到远程连接以及设置权限认证。检查完文档后就搞定了。记录于此,以供日后参考和帮助其他有需要的朋友。

创建用户

先不要开启权限验证。首先,创建一个超级用户。使用此超级用户创建其他用户和权限。

1。切换到管理员数据库

使用admin切换到管理员数据。默认情况下,mongodb 没有这些数据,但是没关系。当我们创建用户时它会自动创建。

2。创建超级用户

在管理数据库中使用以下命令。您可以为 admin 数据库创建超级用户。

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

执行命令后,需要验证用户是否已创建。使用命令 show user 显示有关用户的信息。如果是刚刚创建的admin用户,则表示创建成功,然后使用exit退出控制台。

3。启用权限验证

mongodb 配置文件默认位于 /etc/mongod.conf 文件夹中。使用您最喜欢的编辑器打开它。 sudo vim /etc/mongod.conf

然后打开以下安全设置(默认用#标记)

security:
	authorization: enabled

4.修改mongodb监听地址

默认mongodb监听地址是bindIp:127.0.0.1,只允许本地连接,现在修改为0bindIp,‸0..0可以远程连接。?用户和权限,首先需要连接数据库然后切换到admin数据库

使用admin切换到admin数据库`

然后登录超级用户

db.audb.au("admin" , "adminpassword")

然后切换到您要授权的其他数据库。比如我们需要将数据库testdatabase授权给用户monster,那么我们首先要到testdatabase

使用testdatabase

,然后给用户monster创建相应的权限。命令如下

db.createUser({ user: "monster", pwd: "monsterpassword", roles: [{ role: "dbOwner", db: "testdatabase" }] })

创建用户后,所有工作就完成了。我们将验证它是否被正确使用。 显示用户检查用户信息是否正确。然后使用该用户登录并再次验证。

db.auth("monster", "monsterpassword")
show collections

如果以上都正确,那么怪物就有权限访问数据测试数据库

6。在程序中连接,使用

,则mongodb连接字符串为

mongodb://youruser:yourpassword@localhost/yourdatabase

官方安全文档

作者:Monster000
链接:https://juejin.im/post/5af8051a06766来源:掘金
版权归作者所有。商业转载请联系作者获得许可。非商业转载请注明来源。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门