MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

Mongoシェルで全ユーザーを一覧表示する方法【getUsers()とshow users】

Mongoシェルでユーザーを一覧表示する2つの方法

MongoDBのシェルで、登録済みのすべてのユーザーを確認したい場合は、getUsers()メソッドまたはshowコマンドを使用します。どちらの方法でも、ユーザー名・所属データベース・ロール・認証メカニズムなどの詳細情報を簡単に取得できます。

方法1:getUsers()メソッドを使う

現在接続しているデータベースに属する全ユーザーの情報を、配列形式で取得するメソッドです。スクリプト内でプログラム的にユーザー情報を扱いたい場合にも便利です。

db.getUsers();

方法2:showコマンドを使う

Mongoシェルが提供するヘルパーコマンドで、対話的に手軽にユーザー一覧を表示できます。コマンド入力の手間が少なく、日常的な確認作業に向いています。

show users;

実際の実行例

それでは、上記の2つの構文を実際に実行し、Mongoシェルでユーザー一覧を表示してみましょう。

ケース1:getUsers()メソッドの実行

最初のクエリは以下のとおりです。

> db.getUsers();

実行すると、次のような出力が得られます。

[
    {
      "_id" : "test.John",
      "user" : "John",
      "db" : "test",
      "roles" : [
          {
            "role" : "readWrite",
            "db" : "test"
          },
          {
            "role" : "dbAdmin",
            "db" : "test"
          }
      ],
      "mechanisms" : [
          "SCRAM-SHA-1",
          "SCRAM-SHA-256"
      ]
    },
    {
      "_id" : "test.admin",
      "user" : "admin",
      "db" : "test",
      "roles" : [
          {
            "role" : "root",
            "db" : "admin"
          }
      ],
      "mechanisms" : [
          "SCRAM-SHA-1",
          "SCRAM-SHA-256"
      ]
    }
]

出力からは、ユーザーごとの_id(ユーザー名とデータベース)、roles(readWriteやdbAdmin、rootなどの権限)、そしてmechanisms(SCRAM-SHA-1 / SCRAM-SHA-256といった認証方式)が確認できます。

ケース2:showコマンドの実行

次に、2つ目の方法であるshowコマンドを実行します。

> show users;

この場合も、同様にユーザー情報が出力されます。

{
    "_id" : "test.John",
    "user" : "John",
    "db" : "test",
    "roles" : [
       {
           "role" : "readWrite",
           "db" : "test"
       },
       {
           "role" : "dbAdmin",
           "db" : "test"
       }
    ],
    "mechanisms" : [
       "SCRAM-SHA-1",
       "SCRAM-SHA-256"
    ]
}
{
    "_id" : "test.admin",
    "user" : "admin",
    "db" : "test",
    "roles" : [
       {
           "role" : "root",
           "db" : "admin"
       }
    ],
    "mechanisms" : [
       "SCRAM-SHA-1",
       "SCRAM-SHA-256"
    ]
}

まとめ

Mongoシェルでユーザー一覧を取得するには、以下の2つの方法があります。

  • db.getUsers():JSON形式の配列として取得でき、スクリプトでの利用に適しています。
  • show users:シェル上で手軽に確認できるヘルパーコマンドです。

なお、これらのコマンドは現在接続しているデータベースのユーザーのみを対象とします。他のデータベースのユーザーを確認したい場合は、事前にuse データベース名で対象のデータベースに切り替えてから実行してください。また、ユーザー管理系のコマンドを実行するには、適切な権限(userAdminやuserAdminAnyDatabaseなど)を持つユーザーで認証しておく必要があります。

  1. Windows 10でインストール済みのすべてのプリンターを一覧表示する4つの方法

    Windowsパソコンには、複数のプリンターをインストールすることができます。プリンターをたくさん追加していくと、「今、このパソコンにどんなプリンターが登録されているのか」をまとめて確認したくなる場面があるでしょう。この記事では、Windows 10にインストールされているすべてのプリンターの一覧を表示する方法を、いくつかのアプローチからわかりやすく解説します。 Windows 10でインストール済みのプリンターを確認する4つの方法 Windows 10では、以下の4つの方法でインストール済みのプリンター一覧を表示できます。 コントロールパネルを使う 設定アプリを使う Windows Pow

  2. Linuxでログイン中の全ユーザーを一覧表示する4つのコマンド

    Linuxシステムでは、複数のユーザーが同時に1台のコンピュータへ接続できます。そして、現在誰がシステムにログインしているのかを簡単に確認することも可能です。この記事では、Linuxマシン上のログイン中ユーザーを一覧表示する方法を、代表的な4つのコマンドとともにわかりやすく解説します。1. 「who」コマンドを使う方法whoコマンドを実行すると、現在接続中の各ユーザーの情報が4つの列に分けて表示されます。1列目:ユーザー名2列目:使用中のTTY(端末)3列目:ログインした日時4列目:接続元のホスト名またはIPアドレスまた、-qオプションを付けると、ログイン中のユーザー数だけを簡潔に表示できます