2017-02-15 49 views
0

我们已经在AWS中安装了MongoDB,它在没有认证模式下运行。但我们希望以认证模式运行MongoDB实例。我们在mongod.conf文件中添加了行安全性: 授权:“启用”。但是我们仍然可以在没有任何凭证的情况下连接数据库。在Ubuntu服务器中以认证模式启动MongoDB

+1

你可以在没有凭据连接后从数据库查询吗? – franklinsijo

回答

0

由于本地主机异常,您可以登录数据库创建用户,因为您尚未创建任何用户。正如在mongodb网站中提到的那样。

您可以在启用访问控制之前或之后创建用户。 如果您在创建任何用户之前启用访问控制,则MongoDB 会提供本地主机例外,该例外允许您在管理数据库中创建用户 管理员。一旦创建,您必须以用户管理员的身份 进行身份验证,以创建其他用户,如 所需。

之后,您应该创建具有角色userAdminAnyDatabase的管理员用户,并且您将能够创建此用户,即使mongod是以--auth或不是。你可以通过下面的命令创建这个用户。

use admin 

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

然后创建其他用户,更详细的,你可以去我给出的另一个答案。

https://stackoverflow.com/a/40058794/3879440

+0

Hi Puneet。在ubuntu服务器中以认证模式启动MongoDB 3.0.3的最佳方式是什么? – Pankaj

+0

启用身份验证的流程与答案中提到的相同,可能会有语法更改。检查MongoDB手册获取更多帮助 - https://docs.mongodb.com/v3.0/tutorial/enable-authentication/ –

+0

感谢Punnet的快速回复....我在下面的URL中发布了一个问题, mongodb在auth模式下... http://stackoverflow.com/questions/42339604/start-mongodb-3-0-3-version-in-authentication-mode-in-ubuntu-server – Pankaj