MongoDB的默认用户名和密码是啥?

Posted

技术标签:

【中文标题】MongoDB的默认用户名和密码是啥?【英文标题】:MongoDB what are the default user and password?MongoDB的默认用户名和密码是什么? 【发布时间】:2016-12-19 16:06:59 【问题描述】:

我在本地和生产中使用相同的连接字符串。 当连接字符串为mongodb://localhost/mydb

用户名和密码是什么? 保持这种方式安全吗?

【问题讨论】:

【参考方案1】:

默认情况下 mongodb 没有启用访问控制,因此没有默认用户或密码。

要启用访问控制,请使用命令行选项--auth 或security.authorization 配置文件设置。

您可以使用以下过程或参考 MongoDB 文档中的Enabling Auth。

程序

    在没有访问控制的情况下启动 MongoDB。

    mongod --port 27017 --dbpath /data/db1
    

    连接到实例。

    mongo --port 27017
    

    创建用户管理员。

    use admin
    db.createUser(
      
        user: "myUserAdmin",
        pwd: "abc123",
        roles: [  role: "userAdminAnyDatabase", db: "admin"  ]
      
    )
    

    使用访问控制重新启动 MongoDB 实例。

    mongod --auth --port 27017 --dbpath /data/db1
    

    以用户管理员身份进行身份验证。

    mongo --port 27017 -u "myUserAdmin" -p "abc123" \
      --authenticationDatabase "admin"
    

【讨论】:

如果用户是用角色 userAdminAnyDatabase 创建的,那么将无法创建任何数据库。因此角色部分应该是:角色:[角色:“root”,db:“admin”] 请链接original post from MongoDB Manual 如果你想找到 dbpath 使用:grep dbPath /etc/mongod.conf @georgeos 我试过了,没问题,可以毫无问题地创建数据库。正如 natcho 提到的,与 MongoDB 手册中提出的方法相同。 如果需要删除用户并使用@georgeos 提到的不同角色再次创建使用db.dropUser("myUserAdmin")【参考方案2】:

除了@Camilo Silva 已经提到的,如果您想免费访问创建数据库、读取、写入数据库等,但您不想创建 root 角色,您可以将第三步更改为以下:

use admin
db.createUser(
  
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [  role: "userAdminAnyDatabase", db: "admin" , 
              role: "dbAdminAnyDatabase", db: "admin" , 
              role: "readWriteAnyDatabase", db: "admin"  ]
  
)

如果您已经创建了用户,您可以按如下方式更新用户:

首次登录:

mongo --port 27017 -u "myUserAdmin" -p "abc123" \
  --authenticationDatabase "admin"

添加权限:

use admin
db.grantRolesToUser(
   "myUserAdmin",
   [  role: "userAdminAnyDatabase", db: "admin" , 
      role: "dbAdminAnyDatabase", db: "admin" , 
      role: "readWriteAnyDatabase", db: "admin"  ]
)

【讨论】:

创建副本集,管理集群,需要添加角色“clusterAdmin”【参考方案3】:

对于 2.6 之前的 MongoDB,添加 root 用户的命令是addUser(例如)

db.addUser(user:'admin',pwd:'<password>',roles:["root"])

【讨论】:

在 2.6 版之前,您拥有 db.addUser。从 2.6 开始,在当前版本 3.4.x 中,您可以使用 db.CreateUser 创建用户。 db.createUser ;) (docs.mongodb.com/manual/reference/method/db.createUser)【参考方案4】:

除了之前提供的答案之外,如果您的数据库已经使用访问控制(--auth 开关)启动,一个选项是按照“本地主机异常”方法创建第一个用户。为此,您需要拥有对服务器的 localhost 访问权限,然后运行:

mongo
use admin
db.createUser(
 
     user: "user_name",
     pwd: "user_pass",
     roles: [
            role: "userAdminAnyDatabase", db: "admin" ,
            role: "readWriteAnyDatabase", db: "admin" ,
            role: "dbAdminAnyDatabase", db: "admin" 
        ]
 )

如 MongoDB 文档中所述:

localhost 异常允许您启用访问控制,然后在系统中创建第一个用户。对于 localhost 例外,启用访问控制后,连接到 localhost 界面并在 admin 数据库中创建第一个用户。第一个用户必须具有创建其他用户的权限,例如具有 userAdmin 或 userAdminAnyDatabase 角色的用户。使用 localhost 异常的连接只能在 admin 数据库上创建第一个用户。

这是文档中section 的链接。

【讨论】:

【参考方案5】:

在您的实例中转到 mongo

    mongo

    use admin

    db.createUser(user:"Username", pwd:"Password", roles:[role:"root", db:"admin"])

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于MongoDB的默认用户名和密码是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle默认的用户名和密码是啥?

Grafana 登录页面的默认用户名和密码是啥?

Tomcat中的默认用户名和密码是啥?

MongoDB权限管理之用户名和密码的操作

Ubuntu默认的用户名和密码是啥?

Oracle 10g中默认的用户和密码是啥?我在安装数据库时忘记了密码改成啥了,如何才能登陆呢?