ホームページ  >  記事  >  ウェブフロントエンド  >  mongoDB のユーザーと権限の概要

mongoDB のユーザーと権限の概要

不言
不言オリジナル
2018-07-27 11:03:511658ブラウズ

この記事の内容は mongoDB のユーザーと権限の紹介であり、参考になるものであり、困っている友人に役立つことを願っています。

前書き

データベースにとって、ユーザーと権限はセキュリティに関係するため、非常に重要な部分です。では、mongoDB のユーザーと権限は何でしょうか?

手順

環境手順

この記事で使用されているmongoDBのバージョンは3.6で、オペレーティングシステムはWindowsです。

その他の手順

スペースの都合上、この記事ではデータベースのダウンロードからインストールまでのプロセスは紹介しません。インストール チュートリアルについては、インターネット上に多数のチュートリアルがありますので、これらに従ってインストールして実行してください。この記事では、mongoDB の ユーザーと権限 の部分に焦点を当てます。 用户和权限这一部分。

服务端和客户端

对于mongoDB,分为服务端和客户端。
在windows环境的安装目录下,直接双击打开mongod.exe,即可开启mongoDB服务。
当服务开启后,便可以双击mongo.exe打开客户端来连接到mongoDB服务。

开启授权模式

mongoDB安装后,如果直接用mongod.exe开启服务,默认是没有开启授权模式的,如果你的mongoDB没有开启授权模式,那么任何人都不需要用户名和密码也可以登录到mongoDB服务端,对你的数据库为所欲为,甚至直接删库跑路。所以,在产品环境中,请确保一定记得开启授权模式。

那么,怎么开启授权模式呢?
打开cmd,进入到安装目录的bin目录下,执行如下命令:

mongod --auth --port 27017 --dbpath /data/db

开启了授权模式后,打开mongo.exe,在admin数据库下,执行show dbs,这时,数据库会报错,提醒没有授权。如下:

mongoDB のユーザーと権限の概要

用户类型

mongoDB数据库,大致分为两类用户,一种是管理员用户,一种是普通用户。

管理员

我们在admin数据库中创建一个管理员用户(userAdmin or userAdminAnyDatabase role),管理员用户可以管理普通用户。
首先,以非授权模式开启mongoDB服务。

mongod --port 27017 --dbpath /data/db

然后进入admin数据库,执行如下命令:

use admin
db.createUser(
  {
    user: "larry",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

当提示Successfully added user,证明这个管理员用户已经添加成功。

普通用户

当管理员用户创建成功后,我们便可以用这个管理员用户来给每个数据库来创建普通用户。
首先,关闭上面所有的mongo shell窗口。
再以授权模式开启mongoDB服务。

mongod --auth --port 27017 --dbpath /data/db

打开mongo.exe客户端,进入admin数据库,用db.auth()登录。

mongoDB のユーザーと権限の概要

第一个参数是上面创建的管理员用户名larry,第二个参数是管理员用户larry的密码。
结果返回1,表示管理员larry登录成功。
接下来,用这个管理员给photo_app数据库创建一个普通用户moddx,并指定其权限为readWrite。

use photo_app
db.createUser(
{
  user: "moddx",
  pwd: "123456",
  roles: [{ role: "readWrite", db: "photo_app"}]
}
)

查看用户

全局所有账户

首先,要以管理员账户

サーバーとクライアント

mongoDBの場合、サーバーとクライアントに分かれています。 mongoDB のユーザーと権限の概要Windows環境のインストールディレクトリでmongod.exeをダブルクリックして開き、mongoDBサービスを開始します。 サービスが開始されたら、mongo.exe をダブルクリックしてクライアントを開き、mongoDB サービスに接続できます。

認証モードを有効にする

mongoDB をインストールした後、mongod.exe を直接使用してサービスを開始すると、認証モードはデフォルトで有効になりません。mongoDB が認証モードを有効にしていない場合は、ユーザー名とパスワードを使用して mongoDB サーバーにログインし、データベースでやりたいことを実行したり、データベースを削除して逃げることもできます。したがって、運用環境では、必ず認証モードをオンにしてください。

それでは、認証モードを有効にするにはどうすればよいでしょうか? cmd を開き、インストール ディレクトリの bin ディレクトリに入り、次のコマンドを実行します。 mongoDB のユーザーと権限の概要

db.system.users.find().pretty()
認証モードをオンにした後、mongo.exe を開き、管理データベースで show dbs を実行します。このとき、データベースはエラーを報告し、権限がないことを通知します。以下の通り:

mongoDB のユーザーと権限の概要


ユーザーの種類

mongoDB データベースは、管理者ユーザーと一般ユーザーの 2 種類のユーザーに大別されます。

管理者

管理者データベースに管理者ユーザー (userAdmin または userAdminAnyDatabase ロール) を作成します。管理者ユーザーは一般ユーザーを管理できます。

まず、未承認モードでmongoDBサービスを開きます。

show users

次に、管理データベースに入り、次のコマンドを実行します:

db.dropUser("moddx", {w: "majority", wtimeout: 5000})

「ユーザーの追加に成功しました」というプロンプトが表示されたら、管理者ユーザーが正常に追加されたことがわかります。

通常ユーザー

管理者ユーザーが正常に作成されたら、この管理者ユーザーを使用して各データベースに通常ユーザーを作成できます。

まず、上記の mongo シェル ウィンドウをすべて閉じます。

認証モードでmongoDBサービスを有効にします。

db.revokeRolesFromUser(
    "moddx",
    [
      { role: "readWrite", db: "photo_app" }
    ]
)

mongo.exe クライアントを開き、管理データベースに入り、db.auth() を使用してログインします。

mongoDB のユーザーと権限の概要

🎜最初のパラメータは上で作成した管理者ユーザー名 larry で、2 番目のパラメータは管理者ユーザー larry のパスワードです。 🎜結果は 1 を返し、管理者 Larry が正常にログインしたことを示します。 🎜次に、この管理者を使用して photo_app データベースの通常ユーザー moddx を作成し、その権限を readWrite として指定します。 🎜
use photo_app
db.grantRolesToUser(
   "moddx",
   [ "readWrite" , { role: "read", db: "demodb" } ],
   { w: "majority" , wtimeout: 4000 }
)
🎜ユーザーのすべてのアカウントを表示🎜🎜グローバル🎜🎜 まず、管理者アカウントで管理データベースにログインし、次のコマンドを実行します: 🎜
use photo_app
db.changeUserPassword("moddx", "newpwd")
🎜🎜🎜🎜🎜🎜アカウントの下にある現在のライブラリ🎜 🎜 すべてのグローバル アカウントを表示するには、管理者のみが現在のライブラリ内のアカウントを表示できます。現在のライブラリ内のアカウントを表示するコマンドは次のとおりです。 rrreee🎜🎜🎜🎜🎜🎜ユーザーを削除する 🎜🎜ユーザーを削除するには、dropUser 権限を持つ管理者アカウントが必要なので、操作を実行するには管理者アカウントでログインする必要があります。 🎜一般ユーザー moddx を削除するコマンドは次のとおりです: 🎜rrreee🎜権限の取り消し🎜🎜 ユーザーの権限を取り消すには、コマンドは次のとおりです: 🎜rrreee🎜注: 上記のコマンドは、ユーザーの読み取りおよび書き込み権限を取り消しますが、 photo_app データベース内の moddx ユーザーは削除されておらず、引き続きログインできます。 🎜🎜権限を付与する🎜🎜次のコマンドは、ユーザー moddx に photo_app の読み取りおよび書き込み権限を付与し、同時に、demodb データベースの読み取り権限を付与します 🎜rrreee🎜パスワードを変更します🎜🎜次のコマンドは、ユーザー moddx のパスワードを変更しますphoto_app: 🎜rrreee🎜まとめ🎜🎜 ユーザーと権限に関して、mongoDBを使用する際の一般的なシェル操作コマンドを紹介します。 🎜🎜関連する推奨事項: 🎜🎜🎜[MongoDB] mongodb と php php mongodb の更新 php 接続 mongodb php mongodb が許可されていません🎜🎜

MongoDB ジャーニー (2) 基本操作 (MongoDB Javascript Shell)

以上がmongoDB のユーザーと権限の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。