如何在mongodb(3.0+)中启用权限认证和远程连接?
当我开发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监听地址是 然后登录超级用户 然后切换到您要授权的其他数据库。比如我们需要将数据库 ,然后给用户monster创建相应的权限。命令如下 创建用户后,所有工作就完成了。我们将验证它是否被正确使用。 如果以上都正确,那么怪物就有权限访问数据 ,则mongodb连接字符串为 官方安全文档 作者:Monster000bindIp:127.0.0.1
,只允许本地连接,现在修改为0bindIp,‸0..0可以远程连接。?用户和权限,首先需要连接数据库然后切换到admin数据库
使用admin
切换到admin数据库`db.audb.au("admin" , "adminpassword")
testdatabase
授权给用户monster,那么我们首先要到testdatabase
使用testdatabase
db.createUser({ user: "monster", pwd: "monsterpassword", roles: [{ role: "dbOwner", db: "testdatabase" }] })
显示用户
检查用户信息是否正确。然后使用该用户登录并再次验证。 db.auth("monster", "monsterpassword")
show collections
测试数据库
6。在程序中连接,使用
mongodb://youruser:yourpassword@localhost/yourdatabase
链接:https://juejin.im/post/5af8051a06766来源:掘金
版权归作者所有。商业转载请联系作者获得许可。非商业转载请注明来源。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。