mongodbを起動
mongodbを作成するときにユーザ認証を有りにする。
- dockerの場合
version: "3"
services:
db:
build: .
restart: always
container_name: db-container
hostname: db-server
environment:
- MONGO_DATA_DIR=/var/lib/mongodb
- MONGO_LOG_DIR=/var/log/mongodb
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=example
- MONGO_INITDB_DATABASE=app1
volumes:
- ./db:/var/lib/mongodb
ports:
- 27017:27017
command: mongod
MONGO_INITDB_ROOT_USERNAMEとMONGO_INITDB_ROOT_PASSWORDを設定すれば認証有りになる。
このユーザはadminという認証dbに作成されスーパーユーザロールであるrootが与えられる。
mongodbに接続
mongodbに接続するにはmongodb compassで簡単に接続可能。
cliでする場合は、
#認証なしでとりあえず接続(接続後、db一覧等のコマンドを打っても認証が必要なコマンドですのでエラーが出ます。)
mongosh
#認証有りで接続。@の前にユーザ名を入れて、パスワードは対話形式で聞かれる。
mongosh mongodb://<ユーザ名>@localhost:27017/
認証なしでとりあえず接続してから、認証することも可能。
db.auth(”ユーザ名”,”パスワード”)コマンドでOK。
mongoshのコマンドはhelpでこんな感じで見れるので適宜確認。
またjsコマンドもOK。