2016-08-12 10 views

答えて

65

デフォルトでは、mongodbにはアクセス制御が有効になっていないため、デフォルトのユーザーまたはパスワードはありません。

アクセス制御を有効にするには、コマンドラインオプション--authまたはsecurity.authorization設定ファイルのいずれかの設定を使用します。

MongoDBのドキュメントでは、次の手順を使用するか、Enabling Authを参照してください。

  1. スタートMongoDBのアクセス制御なし手順

mongod --port 27017 --dbpath /data/db1 
  • インスタンスに接続します。

    mongo --port 27017 
    
  • ユーザー管理者を作成します。

    use admin 
    db.createUser(
        { 
        user: "myUserAdmin", 
        pwd: "abc123", 
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
        } 
    ) 
    
  • アクセス制御でMongoDBインスタンスを再起動します。

    mongod --auth --port 27017 --dbpath /data/db1 
    
  • ユーザー管理者として認証します。 MongoDBのために

    mongo --port 27017 -u "myUserAdmin" -p "abc123" \ 
        --authenticationDatabase "admin" 
    
  • +4

    userAdminAnyDatabaseロールを使用してユーザーを作成すると、データベースを作成できなくなります。したがって、ロールセクションは次のようにする必要があります。ロール:[{role: "root"、db: "admin"}] – georgeos

    +2

    [元の投稿をMongoDBマニュアルから]リンクしてください(https://docs.mongodb.com/manual/tutorial/enable -authentication /) –

    1

    あなたが与えたい場合は、以前の2.6より、rootユーザーを追加するためのコマンドは、@Camiloシルバは、既に述べたものに加えてaddUser(例えば)

    db.addUser({user:'admin',pwd:'<password>',roles:["root"]}) 
    
    +0

    TypeError:db.addUserは機能しません –

    +0

    バージョン2.6までは 'db.addUser'があります。 2.6を起動し、現在のバージョン3.4.xでは 'db.CreateUser'でユーザを作成することができます。 –

    2

    ですデータベースの作成、データベースの作成などの自由なアクセスが可能ですが、ルートロールを作成したくない場合は、次のように第3ステップを変更することができます。

    use admin 
    db.createUser(
        { 
        user: "myUserAdmin", 
        pwd: "abc123", 
        roles: [ { role: "userAdminAnyDatabase", db: "admin" }, 
          { role: "dbAdminAnyDatabase", db: "admin" }, 
          { role: "readWriteAnyDatabase", db: "admin" } ] 
        } 
    ) 
    
    関連する問題