|
Το MongoDB παρέχει πρόσβαση σε δεδομένα και εντολές μέσω εξουσιοδότησης βάσει ρόλων και παρέχει ενσωματωμένους ρόλους που παρέχουν τα διαφορετικά επίπεδα πρόσβασης που απαιτούνται συνήθως σε ένα σύστημα βάσης δεδομένων. Μπορείτε επιπλέον να δημιουργήσετε ρόλους που ορίζονται από το χρήστη. Ένας ρόλος εκχωρεί προνόμια για την εκτέλεση συνόλων ενεργειών σε καθορισμένους πόρους. Ένας δεδομένος ρόλος ισχύει για τη βάση δεδομένων στην οποία ορίζεται και μπορεί να παρέχει πρόσβαση σε επίπεδο λεπτομέρειας συλλογής. Καθένας από τους ενσωματωμένους ρόλους του MongoDB ορίζει την πρόσβαση σε επίπεδο βάσης δεδομένων για όλες τις συλλογές εκτός συστήματος στη βάση δεδομένων του ρόλου και σε επίπεδο συλλογής για όλες τις συλλογές συστήματος. Το MongoDB παρέχει τους ενσωματωμένους ρόλους χρήστη βάσης δεδομένων και διαχείρισης βάσης δεδομένων σε κάθε βάση δεδομένων. Το MongoDB παρέχει όλους τους άλλους ενσωματωμένους ρόλους μόνο στη βάση δεδομένων διαχειριστή. Αυτή η ενότητα περιγράφει τα προνόμια για κάθε ενσωματωμένο ρόλο. Μπορείτε επίσης να προβάλετε τα προνόμια για έναν ενσωματωμένο ρόλο ανά πάσα στιγμή, εκδίδοντας την εντολή rolesInfo με τα πεδία showPrivileges και showBuiltinRoles να έχουν οριστεί και τα δύο σε true. Ρόλοι χρήστη βάσης δεδομένωνΚάθε βάση δεδομένων περιλαμβάνει τους ακόλουθους ρόλους προγράμματος-πελάτη: διαβάστεΠαρέχει τη δυνατότητα ανάγνωσης δεδομένων για όλες τις συλλογές εκτός συστήματος και για τις ακόλουθες συλλογές συστήματος:system.indexes, system.js και συλλογές system.namespaces. Ο ρόλος παρέχει πρόσβαση ανάγνωσης εκχωρώντας τις ακόλουθες ενέργειες: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
- λίσταΕυρετήρια
- listΣυλλογές
readWriteΠαρέχει όλα τα προνόμια του ρόλου ανάγνωσης καθώς και τη δυνατότητα τροποποίησης δεδομένων σε όλες τις συλλογές εκτός συστήματος και τη συλλογή system.js. Ο ρόλος παρέχει τις ακόλουθες ενέργειες σε αυτές τις συλλογές: - collStats
- convertToCapped
- createCollection
- dbHash
- dbΣτατιστικά
- dropCollection
- createIndex
- dropIndex
- άδειο καπάκι
- Εύρεση
- Εισάγετε
- killΔρομείς
- λίσταΕυρετήρια
- listΣυλλογές
- Αφαίρεση
- μετονομάστεCollectionSameDB
- Ενημέρωση
Ρόλοι διαχείρισης βάσεων δεδομένωνΚάθε βάση δεδομένων περιλαμβάνει τους ακόλουθους ρόλους διαχείρισης βάσης δεδομένων: dbΔιαχειριστήςΠαρέχει τις ακόλουθες ενέργειες στις συλλογές system.indexes, system.namespaces και system.profile της βάσης δεδομένων: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
- λίσταΕυρετήρια
- listΣυλλογές
- dropCollection και createCollection μόνο στο system.profile
Άλλαξε στην έκδοση 2.6.4: Το dbAdmin πρόσθεσε το createCollection για το system.profilecollection. Οι προηγούμενες εκδόσεις είχαν μόνο το dropCollection στη συλλογή system.profile.
Παρέχει τις ακόλουθες ενέργειες σε όλες τις συλλογές εκτός συστήματος. Αυτός ο ρόλος δεν περιλαμβάνει πλήρη πρόσβαση ανάγνωσης σε συλλογές εκτός συστήματος: - bypassDocumentValidation
- collMod
- collStats
- συμπαγής
- convertToCapped
- createCollection
- createIndex
- dbΣτατιστικά
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- μετονομάστεCollectionSameDB
- repairΒάση δεδομένων
- αποθήκευσηΛεπτομέρειες
- Επικύρωση
dbΙδιοκτήτηςΟ κάτοχος της βάσης δεδομένων μπορεί να εκτελέσει οποιαδήποτε διαχειριστική ενέργεια στη βάση δεδομένων. Αυτός ο ρόλος συνδυάζει τα προνόμια που εκχωρούνται από τους ρόλους readWrite, dbAdmin και userAdmin. χρήστηςΔιαχειριστήςΠαρέχει τη δυνατότητα δημιουργίας και τροποποίησης ρόλων και χρηστών στην τρέχουσα βάση δεδομένων. Αυτός ο ρόλος παρέχει επίσης έμμεσα πρόσβαση υπερχρήστη είτε στη βάση δεδομένων είτε, εάν στοχεύει στη βάση δεδομένων διαχειριστή, στο σύμπλεγμα. Ο ρόλος χρήστηςΔιαχειριστής επιτρέπει στους χρήστες να εκχωρούν σε οποιονδήποτε χρήστη οποιοδήποτε προνόμιο, συμπεριλαμβανομένου του εαυτού τους. Ο ρόλος userAdmin παρέχει ρητά τις ακόλουθες ενέργειες: - changeCustomData
- αλλαγήΚωδικός πρόσβασης
- createRole
- createUser
- dropRole
- dropUser
- grantRole
- revokeRole
- viewRole
- viewUser
Ρόλοι διαχείρισης συμπλέγματοςΗ βάση δεδομένων διαχειριστή περιλαμβάνει τους ακόλουθους ρόλους για τη διαχείριση ολόκληρου του συστήματος και όχι μόνο μιας βάσης δεδομένων. Αυτοί οι ρόλοι περιλαμβάνουν, ενδεικτικά, λειτουργίες διαχείρισης συνόλου αντιγράφων και διαμοιρασμένου συμπλέγματος. clusterAdminΠαρέχει τη μεγαλύτερη πρόσβαση στη διαχείριση συμπλέγματος. Αυτός ο ρόλος συνδυάζει τα προνόμια που εκχωρούνται από τους ρόλους clusterManager, clusterMonitor και hostManager. Επιπλέον, ο ρόλος παρέχει την ενέργεια dropDatabase. Διαχειριστής συμπλέγματοςΠαρέχει δράσεις διαχείρισης και παρακολούθησης στο cluster. Ένας χρήστης με αυτόν τον ρόλο μπορεί να έχει πρόσβαση στις ρυθμίσεις και τις τοπικές βάσεις δεδομένων, οι οποίες χρησιμοποιούνται στον διαμοιρασμό και την αναπαραγωγή, αντίστοιχα. Παρέχει τις ακόλουθες ενέργειες στο σύμπλεγμα ως σύνολο: - addShard
- applicationMessage
- cleanupΟρφανό
- flushRouterConfig
- λίσταΘραύσματα
- αφαίρεσηΘραύσμα
- replSetΔιαμόρφωση
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- Επανασυγχρονισμός
Παρέχει τις ακόλουθες ενέργειες σε όλες τις βάσεις δεδομένων του συμπλέγματος: - επιτρέπωΚοινή χρήση
- moveChunk
- splitChunk
- splitΔιάνυσμα
Στη βάση δεδομένων ρυθμίσεων, το παρέχει τις ακόλουθες ενέργειες στη συλλογή ρυθμίσεων: - Εισάγετε
- Αφαίρεση
- Ενημέρωση
Στη βάση δεδομένων ρυθμίσεων, το παρέχει τις ακόλουθες ενέργειες σε όλες τις συλλογές ρυθμίσεων και στις συλλογές system.indexes, system.js και system.namespaces: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
Στην τοπική βάση δεδομένων, παρέχει τις ακόλουθες ενέργειες στη συλλογή replset: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
clusterMonitorΠαρέχει πρόσβαση μόνο για ανάγνωση σε εργαλεία παρακολούθησης, όπως το MongoDB Cloud Manager και ο παράγοντας παρακολούθησης Ops Manager. Παρέχει τις ακόλουθες ενέργειες στο σύμπλεγμα ως σύνολο: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardΧάρτης
- hostInfo
- inprog
- listΒάσεις δεδομένων
- λίσταΘραύσματα
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- shardingState
- Πάνω
Παρέχει τις ακόλουθες ενέργειες σε όλες τις βάσεις δεδομένων του συμπλέγματος: - collStats
- dbΣτατιστικά
- getShardVersion
- indexStats
Παρέχει την ενέργεια εύρεσης σε όλες τις συλλογές system.profile στο σύμπλεγμα. Παρέχει τις ακόλουθες ενέργειες στις συλλογές ρυθμίσεων της βάσης ρυθμίσεων και στις συλλογές system.indexes, system.js και system.namespaces: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
hostManagerΠαρέχει τη δυνατότητα παρακολούθησης και διαχείρισης διακομιστών. Παρέχει τις ακόλουθες ενέργειες στο σύμπλεγμα ως σύνολο: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagΚαταγραφή
- flushRouterConfig
- fsync
- invalidateUserCache
- Κίλοπ
- logΠεριστροφή
- Επανασυγχρονισμός
- setParameter
- Τερματισμός λειτουργίας
- Αγγιγμα
- Ξεκλείδωμα
Παρέχει τις ακόλουθες ενέργειες σε όλες τις βάσεις δεδομένων του συμπλέγματος: - killΔρομείς
- repairΒάση δεδομένων
Ρόλοι δημιουργίας αντιγράφων ασφαλείας και επαναφοράςΗ βάση δεδομένων διαχειριστή περιλαμβάνει τους ακόλουθους ρόλους για τη δημιουργία αντιγράφων ασφαλείας και την επαναφορά δεδομένων: εφεδρικόςΠαρέχει ελάχιστα προνόμια που απαιτούνται για τη δημιουργία αντιγράφων ασφαλείας δεδομένων. Αυτός ο ρόλος παρέχει επαρκή προνόμια για τη χρήση του εφεδρικού παράγοντα MongoDB Cloud Manager, του εφεδρικού παράγοντα Ops Manager ή για τη χρήση του mongodump για τη δημιουργία αντιγράφων ασφαλείας μιας ολόκληρης παρουσίας mongod. Παρέχει τις ενέργειες εισαγωγής και ενημέρωσης στη συλλογή mms.backup στη βάση δεδομένων διαχείρισης και στη συλλογή ρυθμίσεων στη βάση δεδομένων ρύθμισης παραμέτρων. Παρέχει την ενέργεια listDatabases στο σύμπλεγμα ως σύνολο. Παρέχει την ενέργεια listCollections σε όλες τις βάσεις δεδομένων. Παρέχει την ενέργεια listIndexes για όλες τις συλλογές. Παρέχει την ενέργεια bypassDocumentValidation για συλλογές που έχουν επικύρωση εγγράφου. Παρέχει την ενέργεια εύρεσης στα εξής: - Όλες οι συλλογές εκτός συστήματος στο σύμπλεγμα
- Όλες οι ακόλουθες συλλογές συστημάτων στο σύμπλεγμα: system.indexes, system.namespaces και system.js
- τις συλλογές admin.system.users και admin.system.roles
- Η συλλογή config.settings
- παλαιού τύπου συλλογές system.users από εκδόσεις του MongoDB πριν από την 2.6
Άλλαξε στην έκδοση 3.2.1: Ο ρόλος δημιουργίας αντιγράφων ασφαλείας παρέχει πρόσθετα δικαιώματα για τη δημιουργία αντιγράφων ασφαλείας των συλλογών system.profile που υπάρχουν κατά την εκτέλεση με προφίλ βάσης δεδομένων. Προηγουμένως, οι χρήστες απαιτούσαν πρόσθετη πρόσβαση ανάγνωσης σε αυτήν τη συλλογή. ΕπαναφοράΠαρέχει τα προνόμια που απαιτούνται για την επαναφορά δεδομένων από αντίγραφα ασφαλείας που δεν περιλαμβάνουν δεδομένα system.profilecollection. Αυτός ο ρόλος είναι επαρκής κατά την επαναφορά δεδομένων με το mongorestore χωρίς την επιλογή --oplogReplay. Εάν τα δεδομένα αντιγράφων ασφαλείας περιλαμβάνουν δεδομένα συλλογής system.profile και η βάση δεδομένων προορισμού δεν περιέχει τη συλλογή system.profile, το mongorestore επιχειρεί να δημιουργήσει τη συλλογή, παρόλο που Το πρόγραμμα δεν επαναφέρει στην πραγματικότητα έγγραφα system.profile. Ως εκ τούτου, ο χρήστης απαιτεί πρόσθετα δικαιώματα για την εκτέλεση των ενεργειών createCollection και convertToCapped στη συλλογή system.profile για μια βάση δεδομένων. Οι ενσωματωμένοι ρόλοι dbAdmin και dbAdminAnyDatabase παρέχουν τα πρόσθετα προνόμια. Εάν εκτελείτε το mongorestore με --oplogReplay, ο ρόλος επαναφοράς είναι ανεπαρκής για την επανάληψη του oplog. Για να επαναλάβετε το oplog, δημιουργήστε έναν ρόλο που ορίζεται από το χρήστη που έχει anyAction στο anyResource και εκχωρήστε μόνο σε χρήστες που πρέπει να εκτελέσουν το mongorestore με --oplogReplay.
Παρέχει τις ακόλουθες ενέργειες σε όλες τις συλλογές εκτός συστήματος και τις συλλογές system.js στο σύμπλεγμα. στις συλλογές admin.system.users και admin.system.roles στη βάση δεδομένων διαχειριστή. και σε συλλογές παλαιού τύπου system.users από εκδόσεις του MongoDB πριν από την 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Εισάγετε
Παρέχει την ενέργεια listCollections σε όλες τις βάσεις δεδομένων. Παρέχει τις ακόλουθες πρόσθετες ενέργειες στο admin.system.users και στο system.userscollections παλαιού τύπου: Παρέχει την ενέργεια εύρεσης σε όλες τις συλλογές system.namespaces στο σύμπλεγμα. Παρόλο που η επαναφορά περιλαμβάνει τη δυνατότητα τροποποίησης των εγγράφων στη συλλογή admin.system.usersχρησιμοποιώντας κανονικές λειτουργίες τροποποίησης, τροποποιήστε αυτά τα δεδομένα μόνο χρησιμοποιώντας τη διαχείριση χρηστών μεθόδους.
Ρόλοι σε όλες τις βάσεις δεδομένωνΗ βάση δεδομένων διαχείρισης παρέχει τους ακόλουθους ρόλους που ισχύουν για όλες τις βάσεις δεδομένων σε μια παρουσία mongod και είναι περίπου ισοδύναμοι με τους αντίστοιχους μιας βάσης δεδομένων: readAnyDatabaseΠαρέχει τα ίδια δικαιώματα μόνο για ανάγνωση με την ανάγνωση, εκτός από το ότι ισχύει για όλες τις βάσεις δεδομένων του συμπλέγματος. Ο ρόλος παρέχει επίσης την ενέργεια listDatabases στο σύμπλεγμα ως σύνολο. readWriteAnyDatabaseΠαρέχει τα ίδια δικαιώματα ανάγνωσης και εγγραφής με το readWrite, εκτός από το ότι ισχύει για όλες τις βάσεις δεδομένων του συμπλέγματος. Ο ρόλος παρέχει επίσης την ενέργεια listDatabases στο σύμπλεγμα ως σύνολο. userAdminAnyDatabaseΠαρέχει την ίδια πρόσβαση στις λειτουργίες διαχείρισης χρηστών με το userAdmin, με τη διαφορά ότι ισχύει για όλες τις βάσεις δεδομένων του συμπλέγματος. Ο ρόλος προβλέπει επίσης τις ακόλουθες δράσεις για το σύμπλεγμα στο σύνολό του: - authSchemaUpgrade
- invalidateUserCache
- listΒάσεις δεδομένων
Ο ρόλος παρέχει επίσης τις ακόλουθες ενέργειες στις συλλογές admin.system.users καιadmin.system.roles στη βάση δεδομένων διαχειριστή και στις συλλογές system.userscollections παλαιού τύπου από εκδόσεις του MongoDB πριν από την έκδοση 2.6: - collStats
- dbHash
- dbΣτατιστικά
- Εύρεση
- killΔρομείς
- planCacheRead
Άλλαξε στην έκδοση 2.6.4: Ο userAdminAnyDatabase πρόσθεσε τα ακόλουθα δικαιώματα στις συλλογές admin.system.users και admin.system.roles:
Ο ρόλος userAdminAnyDatabase δεν περιορίζει τα δικαιώματα που μπορεί να εκχωρήσει ένας χρήστης. Ως αποτέλεσμα, οι χρήστες του userAdminAnyDatabase μπορούν να παραχωρήσουν στον εαυτό τους προνόμια που υπερβαίνουν τα τρέχοντα προνόμιά τους και ακόμη και να παραχωρήσουν στον εαυτό τους όλα τα προνόμια, παρόλο που ο ρόλος δεν το κάνει Εξουσιοδοτήστε ρητά τα προνόμια πέρα από τη διαχείριση χρηστών. Αυτός ο ρόλος είναι ουσιαστικά ένας υπερχρήστης συστήματος MongoDB. dbAdminAnyDatabaseΠαρέχει την ίδια πρόσβαση στις λειτουργίες διαχείρισης βάσεων δεδομένων με το dbAdmin, με τη διαφορά ότι ισχύει για όλες τις βάσεις δεδομένων του συμπλέγματος. Ο ρόλος παρέχει επίσης την ενέργεια listDatabases στο σύμπλεγμα ως σύνολο.
Ρόλοι υπερχρήστηΑρκετοί ρόλοι παρέχουν είτε έμμεση είτε άμεση πρόσβαση υπερχρήστη σε όλο το σύστημα. Οι ακόλουθοι ρόλοι παρέχουν τη δυνατότητα εκχώρησης οποιουδήποτε προνομίου σε οποιονδήποτε χρήστη σε οποιαδήποτε βάση δεδομένων, πράγμα που σημαίνει ότι οι χρήστες με έναν από αυτούς τους ρόλους μπορούν να εκχωρήσουν στον εαυτό τους οποιοδήποτε προνόμιο σε οποιαδήποτε βάση δεδομένων: - Ρόλος dbOwner, όταν στοχεύει στη βάση δεδομένων διαχειριστή
- userAdmin, όταν έχει εμβέλεια στη βάση δεδομένων διαχειριστή
- Ρόλος userAdminAnyDatabase
Ο παρακάτω ρόλος παρέχει πλήρη προνόμια σε όλους τους πόρους: ρίζαΠαρέχει πρόσβαση στις λειτουργίες και σε όλους τους πόρους των ρόλων readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, επαναφορά σε συνδυασμό. Άλλαξε στην έκδοση 3.0.7: Η ρίζα έχει ενέργεια επικύρωσης στο σύστημα. συλλογές. Προηγουμένως, rootδεν περιλαμβάνει καμία πρόσβαση σε συλλογές που ξεκινούν με το σύστημα. Πρόθεμα εκτός από το System.Indexes και το System.Namespaces. Ο ρόλος ρίζας περιλαμβάνει προνόμια από τον ρόλο επαναφοράς.
Εσωτερικός ρόλος__systemΤο MongoDB εκχωρεί αυτόν τον ρόλο σε αντικείμενα χρήστη που αντιπροσωπεύουν μέλη συμπλέγματος, όπως μέλη συνόλου αντιγράφων και περιπτώσεις mongos. Ο ρόλος δίνει το δικαίωμα στον κάτοχό του να προβεί σε οποιαδήποτε ενέργεια εναντίον οποιουδήποτε αντικειμένου στη βάση δεδομένων. Μην εκχωρείτε αυτόν τον ρόλο σε αντικείμενα χρήστη που αντιπροσωπεύουν εφαρμογές ή ανθρώπινους διαχειριστές, εκτός από εξαιρετικές περιπτώσεις. Εάν χρειάζεστε πρόσβαση σε όλες τις ενέργειες σε όλους τους πόρους, για παράδειγμα για την εκτέλεση εντολών applyOps, μην εκχωρήσετε αυτόν τον ρόλο. Αντίθετα, δημιουργήστε έναν ρόλο που ορίζεται από το χρήστη που εκχωρεί anyAction στο anyResource και βεβαιωθείτε ότι μόνο οι χρήστες που χρειάζονται πρόσβαση σε αυτές τις λειτουργίες έχουν αυτήν την πρόσβαση. Πρωτότυπο: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|