メインコンテンツへ移動

MongoDB 認証追加手順

ヒント
  • 認証設定では、admin データベースの root ユーザーと、すべての業務データベースの nocoly ユーザーを作成します。

  • サンプルでは root のパスワードに hTkfDMYJ7ZLs、nocoly のパスワードに tC9S86SFWxga を使用していますが、実運用時には必ず強力な任意のパスワードに置き換えてください。

    • 互換性およびセキュリティ担保のため、カスタムパスワードには「$」「&」「!」「@」等の特殊文字は使用しないでください。これらは正規表現のパース問題などにより、コンテナへの正常な設定が行われない場合があります。「-」や「_」のご利用を推奨します。
  • 操作前にデータバックアップを実施することを推奨します。

  1. MongoDB に接続します。

    docker exec -it $(docker ps | grep sc | awk '{print $1}') mongo
  2. mongo shell で admin データベースの root ユーザーと、すべての業務データベースの nocoly ユーザーを作成します。

    use admin
    db.createUser({user:"root",pwd:"hTkfDMYJ7ZLs",roles:[{role:"root",db:"admin"}]})
    use MDLicense
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDLicense"}]})
    use ClientLicense
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"ClientLicense"}]})
    use commonbase
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"commonbase"}]})
    use MDAlert
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDAlert"}]})
    use mdactionlog
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdactionlog"}]})
    use mdapproles
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapproles"}]})
    use mdapprove
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapprove"}]})
    use mdapps
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdapps"}]})
    use mdattachment
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdattachment"}]})
    use mdcalendar
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcalendar"}]})
    use mdcategory
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcategory"}]})
    use MDChatTop
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDChatTop"}]})
    use mdcheck
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdcheck"}]})
    use mddossier
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mddossier"}]})
    use mdemail
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdemail"}]})
    use mdform
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdform"}]})
    use MDGroup
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDGroup"}]})
    use mdgroups
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdgroups"}]})
    use MDHistory
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDHistory"}]})
    use mdIdentification
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdIdentification"}]})
    use mdinbox
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdinbox"}]})
    use mdkc
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdkc"}]})
    use mdmap
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdmap"}]})
    use mdmobileaddress
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdmobileaddress"}]})
    use MDNotification
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDNotification"}]})
    use mdpost
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdpost"}]})
    use mdreportdata
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdreportdata"}]})
    use mdroles
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdroles"}]})
    use mdsearch
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdsearch"}]})
    use mdservicedata
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdservicedata"}]})
    use mdsms
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdsms"}]})
    use MDSso
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDSso"}]})
    use mdtag
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdtag"}]})
    use mdtransfer
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdtransfer"}]})
    use MDUser
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"MDUser"}]})
    use mdworkflow
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworkflow"}]})
    use mdworksheet
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworksheet"}]})
    use mdworkweixin
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdworkweixin"}]})
    use mdwsrows
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"mdwsrows"}]})
    use pushlog
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"pushlog"}]})
    use taskcenter
    db.createUser({user:"nocoly",pwd:"tC9S86SFWxga",roles:[{role:"readWrite",db:"taskcenter"}]})
    use mdintegration
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdintegration"}]})
    use mdworksheetlog
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdworksheetlog"}]})
    use mdworksheetsearch
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdworksheetsearch"}]})
    use mddatapipeline
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mddatapipeline"}]})
    use mdwfplugin
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdwfplugin"}]})
    use mdpayment
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdpayment"}]})
    use mdwfai
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdwfai"}]})
    use mdopenauth
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdopenauth"}]})
    use mdaisearch
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "mdaisearch"}]})
    use MDAgentInfra
    db.createUser({user: "nocoly",pwd: "tC9S86SFWxga",roles: [{role: "readWrite",db: "MDAgentInfra"}]})
  3. docker-compose.yaml の修正(環境変数・ポート開放)

    docker-compose.yaml のデフォルトパス:/data/hap/script/docker-compose.yaml

    • app service の environment 下に ENV_MONGODB_DAEMON_ARGS および ENV_MONGODB_URI を追加してください。
    ENV_MONGODB_DAEMON_ARGS: "--auth"
    ENV_MONGODB_URI: "mongodb://nocoly:tC9S86SFWxga@sc:27017"
    • sc service の ports にて 27017 番ポートのコンテナ公開を行います(外部公開が不要の場合はマッピング不要です)。
    - 27017:27017
    docker-compose.yaml 設定例
    version: '3'

    services:
    core:
    image: nocoly/core:7.5.1
    environment: &app-environment
    ENV_ADDRESS_MAIN: "https://example.domain.com"
    ENV_APP_VERSION: "7.5.1"
    ENV_API_TOKEN: "******"
    ENV_MONGODB_DAEMON_ARGS: "--auth" # 追加
    ENV_MONGODB_URI: "mongodb://nocoly:tC9S86SFWxga@sc:27017" # 追加 ※nocolyユーザーパスワードを適切に変更
    ports:
    - 8880:8880
    volumes:
    - ./volume/data/:/data/
    - ../data:/data/hap/data

    sc:
    image: nocoly/sc:3.2.0
    environment:
    <<: *app-environment
    ports:
    - 27017:27017 # 追加。MongoDBポートのマッピング。外部公開不要であれば、省略可能
    volumes:
    - ./volume/data/:/data/
  4. Install Manager ディレクトリにてマイクロサービスを再起動

    bash service.sh restartall