authentication

https://www.w3schools.com/python/python_mongodb_create_db.asp

名詞概念對應

權限設定

mongodb安裝完成後,預設會建立一個名為admin的database,可藉由mongo shell操作

預設是無權限規範,需要自行手動設定

角色說明:

1. 啟動mongo shell

ubuntu:任何目錄皆可輸入

mongo

若啟動失敗,嘗試重啟mongod服務

sudo service start mongod

sudo service restart mongod

2. 進入database(admin)

use admin

3. 建立屬於admin的SuperUser

db.createUser( {user: "my_superuser", pwd: "icanpass", roles: [{role: "userAdminAnyDatabase", db: "admin"} ] } );

必須先有此帳號,才能進一步配置新帳號權限

4. 配置新帳號權限

db.createUser( {user: "new_user", pwd: "password", roles: [{role: "dbOwner", db: "db_name"}] });

db_name就是此帳號所需要控管的db名稱

5. 啟動驗證機制並重新啟動服務

啟動驗證機制:

mongo --auth

或修改/etc/mongod.conf,新增最後一行

security:
  authorization: enabled

或修改/etc/mongod.conf,新增最後一行

auth=true

最後重新啟動mongod服務

sudo service restart mongod

6. 測試登入

需要用新的使用者資訊來登入

mongo --port 27017 -u <SuperUserName> -p "xx" --authenticationDatabase "admin"
mongo -u <SuperUserName> -p --authenticationDatabase admin

參考資料:

https://segmentfault.com/a/1190000015603831https://www.facebook.com/notes/%E9%84%AD%E6%A5%AD%E8%96%B0/%E5%B7%A5%E4%BD%9C%E7%AD%86%E8%A8%98mongodb-user-role%E8%A8%AD%E5%AE%9A%E7%AD%86%E8%A8%98/10152402345234468/

https://bowwow.tips/post/20160531/

https://www.kdzone.net/2017/04/mongodb-3.html

https://tunin-tunintsai.blogspot.com/2017/02/mongodb.html

Last updated