簡體   English   中英

MongoDB 默認用戶和密碼是什么?

[英]MongoDB what are the default user and password?

我在本地和生產環境中使用相同的連接字符串。 當連接字符串為mongodb://localhost/mydb

用戶名和密碼是什么? 保持這種方式安全嗎?

默認情況下 mongodb 沒有啟用訪問控制,因此沒有默認用戶或密碼。

要啟用訪問控制,請使用命令行選項--auth或 security.authorization 配置文件設置。

您可以使用以下過程或參考 MongoDB 文檔中的啟用身份驗證

程序

  1. 在沒有訪問控制的情況下啟動 MongoDB。

     mongod --port 27017 --dbpath /data/db1
  2. 連接到實例。

     mongo --port 27017
  3. 創建用戶管理員。

     use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
  4. 使用訪問控制重新啟動 MongoDB 實例。

     mongod --auth --port 27017 --dbpath /data/db1
  5. 以用戶管理員身份進行身份驗證。

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

除了@Camilo Silva 已經提到的內容之外,如果您想提供創建數據庫、讀取、寫入數據庫等的免費訪問權限,但又不想創建 root 角色,您可以使用以下內容更改第 3 步:

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" } ]
)

對於 2.6 之前的 MongoDB,添加 root 用戶的命令是addUser (eg)

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

除了先前提供的答案之外,如果您的數據庫已經通過訪問控制( --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 數據庫上創建第一個用戶。

這是文檔該部分的鏈接。

Go 到您實例中的 mongo

    mongo

    use admin

    db.createUser({user:"Username", pwd:"Password", roles:[{role:"root", db:"admin"}]})
mongod --bind_ip_all --auth

修改.conf文件后使用此命令:

 network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,mongodb_server_ip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM