![](/img/trans.png)
[英]what's the easiest way to password protect mongodb database for remote user?
[英]MongoDB what are the default user and password?
我在本地和生產環境中使用相同的連接字符串。 當連接字符串為mongodb://localhost/mydb
用戶名和密碼是什么? 保持這種方式安全嗎?
默認情況下 mongodb 沒有啟用訪問控制,因此沒有默認用戶或密碼。
要啟用訪問控制,請使用命令行選項--auth
或 security.authorization 配置文件設置。
您可以使用以下過程或參考 MongoDB 文檔中的啟用身份驗證。
在沒有訪問控制的情況下啟動 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"
除了@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.