質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.18%

MongoDB:rootロールを持ったユーザでコレクション参照がエラー(Unauthorized)となる。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 643

a-syuji

score 15

前提・実現したいこと

rootロールを持ったユーザは全てのデータベース・コレクションにアクセス可能と想定していましたが
一般ユーザが作成したコレクションにアクセスを試みるとエラー(Unauthorized)となり失敗しました。
rootロールはLinuxにおけるrootユーザと同じく何でも出来るロールと思っているのですが認識に相違あるでしょうか?
原因調査にご協力いただけますと幸いです。

発生している問題・エラーメッセージ

[root@testsv01 ~]# mongo testdb2 -u root --authenticationDatabase admin
MongoDB shell version v4.2.2
Enter password:
connecting to: mongodb://127.0.0.1:27017/testdb2?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5ffbaeca-3b8d-4415-94bf-562cd3ae478c") }
MongoDB server version: 4.2.2
> show databases;
admin    0.000GB
config   0.000GB
local    0.000GB
testdb   0.000GB
testdb2  0.000GB
> db;
testdb2
> show collections;
testcollection
> db.testcollection.find({});
Error: error: {
        "ok" : 0,
        "errmsg" : "not authorized on testdb2 to execute command { find: \"testcollection\", filter: {}, lsid: { id: UUID(\"5ffbaeca-3b8d-4415-94bf-562cd3ae478c\") }, $db: \"testdb2\" }",
        "code" : 13,
        "codeName" : "Unauthorized"
}
> exit;
[root@testsv01 ~]#


※testdb2にreadWriteロールを持ったユーザでは「db.testcollection.find({});」でデータを参照できます。

補足情報(FW/ツールのバージョンなど)

[root@testsv01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@testsv01 ~]#
[root@testsv01 ~]# rpm -qa | grep mongo
mongodb-org-server-4.2.2-1.el7.x86_64
mongodb-org-shell-4.2.2-1.el7.x86_64
mongodb-org-mongos-4.2.2-1.el7.x86_64
mongodb-org-4.2.2-1.el7.x86_64
mongodb-org-tools-4.2.2-1.el7.x86_64
[root@testsv01 ~]#
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

centos7で”MongoDB shell version v4.2.2”環境ですが
root権限を持つrootユーザを作成して、接続しております。

use admin
db.createUser(
{
    user: "root",
    pwd: "passw0rd",
    roles: [ "root" ]
})
show users;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/01/22 03:22

    ご回答ありがとうございます。再度確認したところ"root"ロールを付けたと思っていましたが、"userAdminAnyDatabase"ロールが付いていました。ロールを付け直すことで対策できました。

    ```
    > db.getUser("root")
    {
    "_id" : "admin.root",
    "userId" : UUID("a9f60fb8-593a-4d4b-a440-a99d17561318"),
    "user" : "root",
    "db" : "admin",
    "roles" : [
    {
    "role" : "userAdminAnyDatabase",
    "db" : "admin"
    }
    ],
    "mechanisms" : [
    "SCRAM-SHA-1",
    "SCRAM-SHA-256"
    ]
    }
    ```


    ```
    db.grantRolesToUser("root", [ { role: "root", db: "admin" } ])
    ```



    ```
    db.revokeRolesFromUser("root", [{ role: "userAdminAnyDatabase", db: "admin" }])
    ```



    ```
    > db.getUser("root")
    {
    "_id" : "admin.root",
    "userId" : UUID("a9f60fb8-593a-4d4b-a440-a99d17561318"),
    "user" : "root",
    "db" : "admin",
    "roles" : [
    {
    "role" : "root",
    "db" : "admin"
    }
    ],
    "mechanisms" : [
    "SCRAM-SHA-1",
    "SCRAM-SHA-256"
    ]
    }
    ```

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.18%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る