web-dev-qa-db-ja.com

mongoでスーパーユーザーを作成する

私は、あらゆるデータベースで何でもできるユーザーをmongoで作成しようとしています。

ガイドによると、新しい管理者を作成しました: http://docs.mongodb.org/manual/tutorial/add-user-administrator

これはコードです:

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )

その後、mongoを停止し、認証を有効にして、mongoを再起動しました。

次に、彼のユーザーでデータベースを作成しようとしました。

このガイドによると: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

use fragola 
db.users.save( {username:"fragolino"} )

そして、私はこれを得る:「fragola.usersでの挿入が許可されていません」

誰でも私を助けることができますか?

41
Simo

ロールuserAdminAnyDatabaseにより、ユーザーはユーザーを作成し、任意のロールを割り当てることができます。このため、そのユーザーは、データベース(ユーザーを含む)に許可を与えることができるため、データベースに対して何でも実行できます。

ただし、userAdminAnyDatabaseの役割だけでは、任意のユーザーに任意の権限を割り当てる以外にユーザーが他のことを行うことはできません。データベース上で実際に何かを行うには、そのユーザーは次の追加の役割を持っている必要があります。

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

上記の3つの権限を持つユーザーanduserAdminAnyDatabaseは真のスーパーユーザーであり、何でもできます。

53
drmirror

docs.mongodb.org-superuser-rolesから

シンプルで実装も簡単に見える答えを書いてみましょう

手順:

1:Sudo apt-get install mongodb-org-新しいターミナルで

2:Sudo mongod --port 27017 --dbpath /var/lib/mongodb

3:mongo --port 27017-新しいターミナルで

4:use admin

5:@drmirrorが述べたように、ユーザーはすべての4ロールをsuperuser

Mongoバージョン2の場合。

db.createUser(
{
    user: "tom",
    pwd: "jerry",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

Mongoバージョン3用。

db.createUser(
   {
       user: "tom", 
       pwd: "jerry", 
       roles:["root"]
   })

6:Sudo /etc/init.d/mongod stop OR Sudo service mongod stop-新しいターミナルで

7 : Sudo /etc/init.d/mongod start OR Sudo service mongod start

8:restart your pc

9:Sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb-新しいターミナルで

10:mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin"-新しいターミナルで

ステップ10は最も重要なステップです。

端末の出力を出力します

MongoDB Shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>
55
vijay