mongodb在預設的情況下是無認證啟動的,也就是不需要密碼就可以訪問連線,如果公網開放的話,這是很危險的行為,資料可能會被惡意篡改和刪除,是乙個很大的安全問題。
所以生產環境下,勢必要給mongodb加上使用者驗證並且關閉埠公網訪問。
那麼怎麼給資料新增驗證呢?
非auth的情況下先關閉已啟動的mongodb
# 切換到admin資料庫
use admin
# 關閉
db.shutdownserver(
)# 如果關不掉提示認證資訊,說明現在已經是認證方式啟動的mongo,先輸入密碼
db.auth(
"username", "password"
)# 如果忘記密碼了,請檢視
# 在沒有auth的情況下
> show dbs
admin 0.000gb
yourdb 0.044gb
coex2020 0.000gb
config 0.000gb
flask_profiler 0.000gb
local 0.000gb
# 首先要建立乙個admin的root使用者
> use admin
# 檢視是否已經有使用者了
# >db.system.users.find()
# 建立乙個admin使用者
> db.createuser(]}
)# 賦予admin使用者root許可權
> db.grantrolestouser(
"admin", )
# 關閉資料庫
> db.shutdownserver(
)
開啟auth啟動資料庫(配置檔案啟動,配置檔案貼在最後)mongod -f /etc/mongodb.conf
# 切換到yourdb
> use yourdb
# 建立乙個yourdb的使用者, 賦予其讀寫許可權
> db.createuser(]}
)# 關於使用者可以賦予的許可權,請看
read:允許使用者讀取指定資料庫
readwrite:允許使用者讀寫指定資料庫
dbadmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile
useradmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者
readanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權
readwriteanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權
useradminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的useradmin許可權
dbadminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbadmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
> use yourdb
> db.auth(
"username", "password")1
# 可以愉快的查詢資料了,如果有auth問題,就將賦予對應許可權就可以了
>db.collection.find(
)
新增認證後的訪問連線mongodb://username:password@dbipaddress:27017/yourdb
# 關於鏈結的格式可以訪問
from pymongo import mongoclient
host =
127.0
.0.1
username =
"username"
password =
"password"
# 連線到資料庫
conn = mongoclient(host=host,
port=
27017
, password=password,
username=username,
authsource=
"yourdb"
).yourdb
# 切換到資料庫下的表
collection = conn.your_collection
# 然後就可以愉快的操作mongo了
mongo 配置檔案(yaml格式)
關於yaml,這個檔案的格式很嚴格,不支援tab。
按照層級,二層和一層每行要相隔4個空格,三層和二層要相隔4個空格,頂層不需要空格縮排,依次類推。key後面要有乙個空格。
# mongodb.conf
# reminds: using yaml style
# where to store the data.
storage
:dbpath
: /home/bigdata/mongo/data
journal
:enabled
:true
#where to log
systemlog
:path
: /home/bigdata/mongo/log/mongodb.log
:true
destination
: file
# network setting
net:
bindip
: 0.0.0.0
port
:27017
# how the process runs
processmanagement
:fork
:true
# enable journaling,
# journal=true
# 開啟auth,需要賬戶密碼才可以訪問
security
:authorization
: enabled
以上就我個人總結出來的mongo auth,希望可以幫助到你。 mongodb 新增使用者密碼
先以非授權的模式啟動mongodb 非授權 linux mac mongod f etc mongo.conf windows mongod config c mongodb etc mongo.conf 或者 net start mongodb 前提是mongo安裝到了服務裡面 mongo use...
mongodb新增遠端使用者連線
預設mongodb剛剛安裝完是沒有使用者密碼的直接登入即可 ok,這樣我們就建立好了超級管理員的賬號和密碼。第三步,登入認證 db.auth root 123456 1第四步,查詢已新增的使用者 db.system.users.find 第五步,遠端登入使用者 退出mongo,修改配置檔案mongo...
mongodb安裝 認證 新增使用者
1 建立mongdb安裝路徑 mkdir usr local mongodb 3 解壓到 usr local mongodb tar zxvf mongodb linux x86 64 4.0.0 rc7.tgz c usr local mongodb 4 重新命名 mv mongodb linux...