3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MongoDB - シャード+レプリカセット構成でのユーザ作成について

Last updated at Posted at 2015-08-21

シャード+レプリカセット構成でユーザ作成をする場合は、順番は多少前後してもよさそうだけど、まずレプリカセットでユーザを作成したあと、シャードでユーザを作成するのがよさそう

前提条件

  • レプリカセットは構築済み
  • シャード構成は構築済み
  • mongosのポートは27017
  • mongodのポートは27018
  • mongocのポートは27019
  • 「/etc/mongod/mongodb-keyfile」の権限は600で作成済み

レプリカセットでユーザ作成

noauthモードでmongod起動

  • mongodのauth関連の設定ファイルはこんな感じ
noauth=true
# auth=true
# keyFile=/etc/mongod/mongod-keyfile

管理ユーザ作成

  • mongodのPRAIMARYで実行する
  • PRIMARYで実行するとSECONDARYに同期される
mongo --port 27018 admin
db.createUser( { user: "root", pwd: "PASSWORD", roles: [ "root", "backup", "restore", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase" ] } )
db.createUser( { user: "admin", pwd: "PASSWORD", roles: [ "root", "backup", "restore", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase" ] } )
exit
mongo --port 27018 admin -u root -p PASSWORD
use sg2
db.createUser( { user: "app", pwd: "PASSWORD", roles: [ { role: "dbOwner", db: "appdb" },  { role: "dbOwner", db: "appdb" } ] } )
use admin
db.system.users.find()
exit

authモードでmongod起動

  • mongodのauth関連の設定ファイルはこんな感じ
  • レプリカセットの場合はkeyFileがないとレプリケーションできない
# noauth=true
auth=true
keyFile=/etc/mongod/mongod-keyfile

シャードでユーザ作成

authモードでmongoc起動

  • mongocのauth関連の設定ファイルはこんな感じ
# noauth=true
auth=true
keyFile=/etc/mongod/mongod-keyfile

noauthモードでmongos起動

  • mongosのauth関連の設定ファイルはこんな感じ
noauth=true
# auth=true
# keyFile=/etc/mongod/mongod-keyfile

管理ユーザ作成

  • mongosで実行する
  • mongosで実行するとmongocに同期される
mongo --port 27018 admin
db.createUser( { user: "root", pwd: "PASSWORD", roles: [ "root", "backup", "restore", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase" ] } )
db.createUser( { user: "admin", pwd: "PASSWORD", roles: [ "root", "backup", "restore", "readWriteAnyDatabase", "userAdminAnyDatabase", "dbAdminAnyDatabase" ] } )
exit
mongo --port 27018 admin -u root -p PASSWORD
use sg2
db.createUser( { user: "app", pwd: "PASSWORD", roles: [ { role: "dbOwner", db: "appdb" },  { role: "dbOwner", db: "appdb" } ] } )
use admin
db.system.users.find()
exit

※参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?