この記事の内容は 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数据库,大致分为两类用户,一种是管理员用户,一种是普通用户。
我们在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()
登录。
第一个参数是上面创建的管理员用户名larry,第二个参数是管理员用户larry的密码。
结果返回1,表示管理员larry登录成功。
接下来,用这个管理员给photo_app数据库创建一个普通用户moddx,并指定其权限为readWrite。
use photo_app db.createUser( { user: "moddx", pwd: "123456", roles: [{ role: "readWrite", db: "photo_app"}] } )
首先,要以管理员账户
mongoDBの場合、サーバーとクライアントに分かれています。 Windows環境のインストールディレクトリでmongod.exeをダブルクリックして開き、mongoDBサービスを開始します。 サービスが開始されたら、mongo.exe をダブルクリックしてクライアントを開き、mongoDB サービスに接続できます。
mongoDB をインストールした後、mongod.exe を直接使用してサービスを開始すると、認証モードはデフォルトで有効になりません
。mongoDB が認証モードを有効にしていない場合は、ユーザー名とパスワードを使用して mongoDB サーバーにログインし、データベースでやりたいことを実行したり、データベースを削除して逃げる
こともできます。したがって、運用環境では、必ず認証モードをオンにしてください。
それでは、認証モードを有効にするにはどうすればよいでしょうか? cmd を開き、インストール ディレクトリの bin ディレクトリに入り、次のコマンドを実行します。 db.system.users.find().pretty()
show dbs
を実行します。このとき、データベースはエラーを報告し、権限がないことを通知します。以下の通り:
未承認モード
でmongoDBサービスを開きます。 show users
次に、管理データベースに入り、次のコマンドを実行します:
db.dropUser("moddx", {w: "majority", wtimeout: 5000})
通常ユーザー
認証モード
でmongoDBサービスを有効にします。
db.revokeRolesFromUser( "moddx", [ { role: "readWrite", db: "photo_app" } ] )
mongo.exe クライアントを開き、管理データベースに入り、db.auth()
を使用してログインします。
use photo_app db.grantRolesToUser( "moddx", [ "readWrite" , { role: "read", db: "demodb" } ], { w: "majority" , wtimeout: 4000 } )
管理者アカウント
で管理データベースにログインし、次のコマンドを実行します: 🎜use photo_app db.changeUserPassword("moddx", "newpwd")
MongoDB ジャーニー (2) 基本操作 (MongoDB Javascript Shell)
以上がmongoDB のユーザーと権限の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。