PostgreSQL Παραχωρεί όλα τα προνόμια στο Schema στον χρήστη

Postgresql Parachorei Ola Ta Pronomia Sto Schema Ston Chreste



Οι βάσεις δεδομένων είναι ζωτικής σημασίας και είναι δουλειά του διαχειριστή να ελέγχει τους διαφορετικούς ρόλους που μπορούν να κάνουν οι χρήστες σε μια δεδομένη βάση δεδομένων. Ως μέρος της εξουσιοδότησης, ο διαχειριστής μπορεί να ορίσει οντότητες χρήστη εντός της βάσης δεδομένων και να εκχωρήσει ή να ανακαλέσει διάφορα δικαιώματα στους ρόλους.

Με αυτόν τον τρόπο, αποκτάτε τον έλεγχο σχετικά με το ποιος μπορεί να έχει πρόσβαση σε μια βάση δεδομένων και ποια δικαιώματα έχουν εάν μπορούν να έχουν πρόσβαση στη βάση δεδομένων. Για παράδειγμα, μπορείτε να ανακαλέσετε την τροποποίηση της βάσης δεδομένων ή να εκχωρήσετε όλα τα δικαιώματα στο σχήμα σε έναν χρήστη ή χρήστες σε έναν δεδομένο πίνακα. Αυτός ο οδηγός περιγράφει λεπτομερώς τον τρόπο χρήσης της PostgreSQL για να εκχωρήσετε σε έναν χρήστη όλα τα προνόμια του σχήματος σε έναν χρήστη.







Πώς να παραχωρήσετε προνόμια σε χρήστες στο PostgreSQL

Όταν δημιουργείτε έναν νέο ρόλο, έχουν κάποια προνόμια από προεπιλογή. Ωστόσο, τα περισσότερα προνόμια απαιτούν από τον διαχειριστή να τα εκχωρήσει σε διαφορετικούς χρήστες για τη ρύθμιση της πρόσβασης και του ελέγχου ενός σχήματος. Μπορείτε να παραχωρήσετε όλα τα προνόμια ταυτόχρονα ή ξεχωριστά.



Για αυτό το σεμινάριο, ας δημιουργήσουμε ένα νέο ρόλος ονομάστηκε linuxhit1 .



$ sudo -iu postgres
# δημιουργία ρόλου linuxhit1 κωδικός πρόσβασης σύνδεσης «linuxint»;


Σημειώστε ότι είμαστε συνδεδεμένοι ως postgres, ο προεπιλεγμένος ρόλος που δημιουργήθηκε μόλις εγκαταστήσετε το PostgreSQL.






Με τον ρόλο (χρήστη) που δημιουργήθηκε, μπορούμε να παραθέσουμε τους διαθέσιμους ρόλους χρησιμοποιώντας την ακόλουθη εντολή:

# \ από


Οι διαθέσιμοι ρόλοι θα εμφανίζονται σε μορφή πίνακα.




Postgres είναι ο προεπιλεγμένος ρόλος και έχει ήδη παραχωρημένα τα περισσότερα προνόμια. Ωστόσο, ο νέος ρόλος, linuxhit1, δεν έχει κανένα προνόμιο μέχρι να το παραχωρήσουμε.

1. Παροχή Ειδικού Προνομίου σε Χρήστη

Ο ρόλος που δημιουργήθηκε δεν μπορεί να τροποποιήσει το σχήμα εκτός και αν το επιτρέψετε. Ας το επαληθεύσουμε δημιουργώντας πρώτα έναν πίνακα ως προεπιλεγμένο ρόλο, postgres.

# δημιουργία ονομάτων πινάκων ( m_id int δημιουργείται πάντα όπως και ταυτότητα, fname vachar ( 100 ) όχι null, lname varchar ( 100 ) όχι μηδενική, ηλικία εντ ) ;



Μπορείτε να απαριθμήσετε τις διαθέσιμες σχέσεις, όπως φαίνεται παρακάτω:


Στη συνέχεια, ανοίξτε ένα νέο κέλυφος και συνδεθείτε στο PostgreSQL χρησιμοποιώντας τον άλλο ρόλο, linuxhit1, που δημιουργήσαμε νωρίτερα χρησιμοποιώντας την ακόλουθη εντολή:

$ psql -ΣΕ linuxhit1 -ρε postgres



ο -ρε καθορίζει ότι ο ρόλος είναι να χρησιμοποιήσετε τη βάση δεδομένων Postgres.

Προσπαθήστε να διαβάσετε τα περιεχόμενα του πίνακα που δημιουργήσαμε χρησιμοποιώντας το ΕΠΙΛΕΓΩ εντολή.

# ΕΠΙΛΕΓΩ * ΑΠΟ ονόματα?


Επιστρέφει α η άδεια απορρίφθηκε σφάλμα που εμποδίζει την πρόσβαση του χρήστη στον πίνακα.


Σε μια τέτοια περίπτωση, πρέπει να εκχωρήσουμε δικαιώματα ρόλου για επιλογή/προβολή δεδομένων από τον δεδομένο πίνακα χρησιμοποιώντας την ακόλουθη σύνταξη:

# GRANT privilege_name ON table_name TO role_name;


Για να παραχωρήσετε τα προνόμια, χρησιμοποιήστε τη συνεδρία Postgres.


Μόλις δοθεί, προσπαθήστε να εκτελέσετε ξανά την προηγούμενη εντολή.


Αυτό είναι. Καταφέρατε να εκχωρήσετε το προνόμιο επιλογής στον συγκεκριμένο χρήστη.

2. Εκχώρηση όλων των προνομίων στο σχήμα σε έναν χρήστη

Μέχρι στιγμής, καταφέραμε να παραχωρήσουμε μόνο ένα προνόμιο στο σχήμα σε έναν χρήστη. Λοιπόν, αυτό δεν είναι αρκετό. Ο χρήστης δεν μπορεί να τροποποιήσει το σχήμα εκτός και αν του εκχωρήσετε όλα τα προνόμια, όπως εισαγωγή και ενημέρωση.

Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό. Πρώτον, ας παραχωρεί στον χρήστη όλα τα δικαιώματα σε έναν δεδομένο πίνακα χρησιμοποιώντας την ακόλουθη σύνταξη:

# GRANT ALL ON table_name TO role_name.



Ο χρήστης μπορεί να αλληλεπιδράσει και να τροποποιήσει τον συγκεκριμένο πίνακα. Ωστόσο, δεν μπορούν να λειτουργήσουν με άλλους πίνακες στο σχήμα.

Προς την παραχωρήστε όλα τα προνόμια σε όλους τους πίνακες σε ένα συγκεκριμένο σχήμα , χρησιμοποιήστε την ακόλουθη σύνταξη:

# ΧΟΡΗΓΗΣΗ ΟΛΩΝ ΣΕ ΟΛΟΥΣ ΤΟΥΣ ΠΙΝΑΚΕΣ ΣΤΟ SCHEMA schema_name ΣΤΟ role_name.



Τέλος, μπορείτε παραχωρήστε συγκεκριμένα προνόμια, όπως την εισαγωγή ή την επιλογή όλων των πινάκων στο σχήμα σε έναν δεδομένο ρόλο .

# GRANT privilege_name ΣΕ ΟΛΟΥΣ ΤΟΥΣ ΠΙΝΑΚΕΣ ΣΤΟ SCHEMA schema_name TO role_name.



Ο ρόλος μπορεί να επιλέξει δεδομένα σε όλους τους πίνακες στο καθορισμένο σχήμα. Αυτός είναι ο τρόπος με τον οποίο ορίζετε ποια προνόμια θα παραχωρήσετε στο σχήμα σε διαφορετικούς χρήστες.

συμπέρασμα

Το PostgreSQL είναι ένα ισχυρό DBMS. Διαθέτει διαφορετικά χαρακτηριστικά, συμπεριλαμβανομένου του να επιτρέπει στον διαχειριστή να εκχωρεί διάφορα προνόμια στους χρήστες. Η παραχώρηση όλων των προνομίων στο σχήμα στους χρήστες σημαίνει ότι επιτρέπεται στον χρήστη να τροποποιεί και να αλληλεπιδρά με όλους τους πίνακες στο καθορισμένο σχήμα. Είδαμε πώς να εφαρμόσουμε αυτό και άλλους τρόπους παραχώρησης προνομίων στο σχήμα σε ρόλους χρησιμοποιώντας τη δήλωση GRANT στη PostgreSQL.