mongoDB中用户与权限的介绍
这篇文章给大家介绍的文章内容是关于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"}] } )
查看用户
全局所有账户
首先,要以管理员账户
登录到admin数据库,接着执行如下命令:
db.system.users.find().pretty()
当前库下的账户
查看全局所有账户,只有管理员才可以查看,而查看当前库中的帐号,普通用户和管理员用户都可以查看,查看当前库下的帐号命令如下:
show users
删除用户
必须拥有dropUser权利的管理员帐号才能删除用户,所以,需要用管理员账户登录进行操作。
删除普通用户moddx的命令如下:
db.dropUser("moddx", {w: "majority", wtimeout: 5000})
撤销权限
撤销一个用户的权限,命令如下:
db.revokeRolesFromUser( "moddx", [ { role: "readWrite", db: "photo_app" } ] )
注意:上面命令虽然撤销了moddx用户在photo_app数据库中的读写权限,但是,用户并没有删除,依旧可以登录。
授予权限
如下命令给了用户moddx在photo_app中的读写权限,同时,给予了他在demodb数据库中的读权限
use photo_app db.grantRolesToUser( "moddx", [ "readWrite" , { role: "read", db: "demodb" } ], { w: "majority" , wtimeout: 4000 } )
修改密码
如下命令修改了photo_app中用户moddx的密码:
use photo_app db.changeUserPassword("moddx", "newpwd")
小结
关于用户和权限部分,常用shell操作命令就这些,希望能够对你使用mongoDB带来方便。
相关推荐:
[MongoDB] mongodb与php php mongodb update php连接mongodb php mongodb not authorize
MongoDB之旅(二)基本操作(MongoDB Javascript Shell)
Atas ialah kandungan terperinci mongoDB中用户与权限的介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Adalah disyorkan untuk menggunakan versi terkini MongoDB (kini 5.0) kerana ia menyediakan ciri dan penambahbaikan terkini. Apabila memilih versi, anda perlu mempertimbangkan keperluan fungsian, keserasian, kestabilan dan sokongan komuniti Sebagai contoh, versi terkini mempunyai ciri seperti transaksi dan pengoptimuman saluran paip. Pastikan versi itu serasi dengan aplikasi. Untuk persekitaran pengeluaran, pilih versi sokongan jangka panjang. Versi terkini mempunyai sokongan komuniti yang lebih aktif.

Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Dengan perkembangan Internet, kehidupan orang ramai menjadi lebih digital, dan permintaan untuk pemperibadian menjadi lebih kuat dan lebih kukuh. Dalam era ledakan maklumat ini, pengguna sering berhadapan dengan jumlah maklumat yang besar dan tidak mempunyai pilihan, jadi kepentingan sistem pengesyoran masa nyata telah menjadi semakin menonjol. Artikel ini akan berkongsi pengalaman menggunakan MongoDB untuk melaksanakan sistem pengesyoran masa nyata, dengan harapan dapat memberikan sedikit inspirasi dan bantuan kepada pembangun. 1. Pengenalan kepada MongoDB MongoDB ialah pangkalan data NoSQL sumber terbuka yang terkenal dengan prestasi tinggi, skalabiliti mudah dan model data yang fleksibel. Berbanding dengan biografi

Data pangkalan data MongoDB disimpan dalam direktori data yang ditentukan, yang boleh terdapat dalam sistem fail tempatan, sistem fail rangkaian atau storan awan Lokasi khusus adalah seperti berikut: Sistem fail tempatan: Laluan lalai ialah Linux/macOS: /data/db, Windows: C:\data\db. Sistem fail rangkaian: Laluan bergantung pada sistem fail. Storan Awan: Laluan ditentukan oleh pembekal storan awan.

Pangkalan data MongoDB terkenal dengan fleksibiliti, skalabiliti dan prestasi tingginya. Kelebihannya termasuk: model data dokumen yang membolehkan data disimpan dengan cara yang fleksibel dan tidak berstruktur. Skala mendatar kepada berbilang pelayan melalui sharding. Fleksibiliti pertanyaan, menyokong pertanyaan kompleks dan operasi pengagregatan. Replikasi data dan toleransi kesalahan memastikan lebihan data dan ketersediaan tinggi. Sokongan JSON untuk penyepaduan mudah dengan aplikasi bahagian hadapan. Prestasi tinggi untuk respons pantas walaupun semasa memproses sejumlah besar data. Sumber terbuka, boleh disesuaikan dan percuma untuk digunakan.

MongoDB ialah sistem pangkalan data teragih berorientasikan dokumen yang digunakan untuk menyimpan dan mengurus sejumlah besar data berstruktur dan tidak berstruktur. Konsep terasnya termasuk penyimpanan dan pengedaran dokumen, dan ciri utamanya termasuk skema dinamik, pengindeksan, pengagregatan, pengurangan peta dan replikasi. Ia digunakan secara meluas dalam sistem pengurusan kandungan, platform e-dagang, laman web media sosial, aplikasi IoT dan pembangunan aplikasi mudah alih.

Fail pangkalan data MongoDB terletak dalam direktori data MongoDB, iaitu /data/db secara lalai, yang mengandungi .bson (data dokumen), ns (maklumat pengumpulan), jurnal (tulis rekod operasi), wiredTiger (data apabila menggunakan WiredTiger enjin storan ) dan konfigurasi (maklumat konfigurasi pangkalan data) dan fail lain.

Pada Linux/macOS: Cipta direktori data dan mulakan perkhidmatan "mongod". Pada Windows: Cipta direktori data dan mulakan perkhidmatan MongoDB daripada Pengurus Perkhidmatan. Dalam Docker: Jalankan arahan "docker run". Pada platform lain: Sila rujuk dokumentasi MongoDB. Kaedah pengesahan: Jalankan arahan "mongo" untuk menyambung dan melihat versi pelayan.
