IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / Node.js / アクセス制御を有効にした MongoDB に接続する

アクセス制御を有効にした MongoDB に接続する

2018/01/25 Node.js, Windows

アクセス制御を有効にした MongoDB に接続する

関連記事

実際に運用しようという段階でもなく、ちょっと遊んでみようと初めただけの Node.js+MongoDB ですが、起動時の WARNING が気になり、後回しでもよかったかもしれないアクセス制御が先行してしまっています。

  • アクセス制御を有効にして MongoDB を起動する
  • 一般ユーザーを作成する
    • 管理者ユーザーでログイン
    • 一般ユーザーを作成する
    • 一般ユーザーでログイン
  • サンプルコードで試す

アクセス制御を有効にして MongoDB を起動する

結局、実運用であれば、誰でも入れるデータベースなんてのはあり得ませんので、管理者ユーザーを作成して、アクセス制御を有効にして起動し、各データベースはロールを指定した一般ユーザーで運用するということになると思います。

すでに「MongoDB 起動後の WARNING を消す」で管理者ユーザーは作成してありますので、アクセス制御を有効にして MongoDB
を起動します。

>mongod --auth --port 27017 --bind_ip 127.0.0.1 --dbpath c:\mongodb\data

「MongoDB 起動後の WARNING を消す」を参照してください。

一般ユーザーを作成する

管理者ユーザーでログイン

>mongo -u "myUserAdmin" -p "password" -authenticationDatabase "admin"

「MongoDB 起動後の WARNING を消す」を参照してください。

一般ユーザーを作成する

Node.js から MongoDB への接続テスト で作成した myproject に読み書き用ロールを持った一般ユーザーを作成してみます。

use myproject
db.createUser({
    user: "user1",
    pwd: "abc123",
    roles: [{
        role: "readWrite", db: "myproject"
    }]
})

一般ユーザーでログイン

データベース myproject にログインして登録されているデータを見てみましょう。

>mongo -u "user1" -p "abc123" -authenticationDatabase "myproject"


>use myproject


>db.documents.find()

成功ですね。

サンプルコードで試す

Node.js から MongoDB への接続テストで試したサンプルコードを作成した一般ユーザーでログインするように変更します。

const url = 'mongodb://user1:abc123@localhost:27017/myproject';

これでいけると思います。

const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');


// Connection URL
const url = 'mongodb://user1:abc123@localhost:27017/myproject';


// Database Name
const dbName = 'myproject';


// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
  assert.equal(null, err);
  console.log("Connected successfully to server");


  const db = client.db(dbName);


  client.close();
});

OKですね。

Node.js から MongoDB への接続テスト
Joomla! 3.8.4 セキュリティ&バグフィックスがリリースされています
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/01/26

WordPress:メニューのid,classを整理カスタマイズ

2023/01/19

WordPress:JSON-LD構造化データをプラグインなしで出力

2023/01/11

WordPress:OGPタグをプラグインなしで挿入する

2022/12/27

WordPress:canonicalタグをプラグインなしで制御する

2022/12/21

WordPress:robotsメタタグをプラグインなしで制御する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips108
  • javascript98
  • Joomla!88
  • Windows68
  • CSS63
  • Wordpress59
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Plamo33
  • Google32
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • genesis6
  • ConoHa WING6
  • Git入門6
  • Python5
  • Android5
  • スマートフォン4
  • PC全般4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Facebook3
  • Blankslate3
  • Docker3
  • Mactype2
  • GitHub2
  • youtube1
  • rails入門1
  • Twitter1
  • はてなブクマ1
  • 映画1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com