Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 13251|Απάντηση: 0

[Πηγή] Στοιχείο ελέγχου δικαιωμάτων σε επίπεδο στήλης βάσης δεδομένων Oracle

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/12/2015 11:47:14 μ.μ. | | |
Ο πελάτης έχει μια ανάγκη, έναν πίνακα με περισσότερα από 150 πεδία, ο πελάτης απαιτεί μόνο ορισμένα πεδία για να τα δουν οι άνθρωποι της εταιρείας σάρωσης, αυτή η απαίτηση μπορεί εύκολα να πραγματοποιηθεί με μια προβολή, ο πελάτης ζητά επίσης, αυτά τα πεδία, η εταιρεία σάρωσης μπορεί να τροποποιήσει μόνο μεμονωμένα πεδία, πραγματικά δεν έχω συναντήσει τέτοια ανάγκη για έλεγχο αδειών σε επίπεδο στήλης πριν, έκανα ένα πείραμα, νιώθω πολύ ενδιαφέρον, καταγράψτε το

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

1. Δημιουργήστε έναν πίνακα δοκιμής και εισαγάγετε δεδομένα δοκιμής σημείου:

  SQL> δημιουργία δοκιμής πίνακα (αριθμός αναγνωριστικού table_name varchar2(50),

ιδιοκτήτης varchar2(50),TABLESPACE_NAME varchar2(50));

Δημιουργήθηκε πίνακας.

SQL> εισαγωγή στη δοκιμαστική επιλογή σειράς, table_name, ιδιοκτήτης,

TABLESPACE_NAME από dba_tables.

Δημιουργήθηκαν 5490 σειρές.

SQL> υποβολή;

Η δέσμευση ολοκληρώθηκε.

2. Δημιουργήστε έναν δοκιμαστικό χρήστη και δώστε βασικά δικαιώματα:

SQL> CONN / ΩΣ SYSDBA

Συνδεδεμένος.

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

Ο χρήστης δημιουργήθηκε.

SQL> επιχορήγηση σύνδεση, πόρος σε ροή.

Ο Γκραντ πέτυχε.

3. Εκχωρήστε στους χρήστες δοκιμής δικαιώματα σε επίπεδο στήλης:

SQL> conn auth/auth

Συνδεδεμένος.

Ενημέρωση επιχορήγησης SQL> (id) κατά τη δοκιμή σε ροή.

Ο Γκραντ πέτυχε.

SQL> ένθετο επιχορήγησης (table_name) σε δοκιμή σε ροή.

Ο Γκραντ πέτυχε.

SQL>

SQL> επιχορήγηση επιλογής κατά τη δοκιμή για ροή.

Ο Γκραντ πέτυχε.

4. Πληροφορίες ρύθμισης δικαιωμάτων σε επίπεδο στήλης ερωτήματος:

SQL> επιλέξτε ΔΙΚΑΙΟΥΧΟΣ,ΙΔΙΟΚΤΗΤΗΣ,TABLE_NAME,COLUMN_NAME,ΠΑΡΑΧΩΡΗΤΗΣ,ΠΡΟΝΟΜΙΟ,

ΧΟΡΗΓΟΥΜΕΝΟ από user_col_privs.

ΔΩΡΕΟΔΌΧΟΣ ΙΔΙΟΚΤΉΤΗΣ TABLE_NAME COLUMN_NAME ΠΡΟΝΌΜΙΟ ΔΩΡΗΤΉ GRA

------- ----- ---------- ----------- ------- --------- ---

ΔΟΚΙΜΉ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΡΟΉΣ TABLE_NAME ΕΙΣΑΓΩΓΉ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΌΧΙ

ΑΝΑΓΝΩΡΙΣΤΙΚΌ ΔΟΚΙΜΉΣ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ AUT ΕΙΣΑΓΩΓΉ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΑΡΙΘ.

ΑΝΑΓΝΩΡΙΣΤΙΚΌ ΔΟΚΙΜΉΣ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ AUT ΕΝΗΜΈΡΩΣΗ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΌΧΙ

ΑΝΑΓΝΩΡΙΣΤΙΚΌ ΔΟΚΙΜΉΣ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΡΟΉΣ ΕΝΗΜΈΡΩΣΗ ΕΛΈΓΧΟΥ ΤΑΥΤΌΤΗΤΑΣ ΌΧΙ

5. Ο χρήστης δοκιμής σύνδεσης επαληθεύει την άδεια SELECT:

SQL> conn ροή/ροή

Συνδεδεμένος.

SQL> επιλέξτε * από(επιλέξτε * από auth.test σειρά κατά 1) όπου rownum< =10;

ID TABLE_NAME OWNER TABLESPACE

---------- -------------------- ---------- ----------

1 ΣΥΣΤΗΜΑ ICOL$ SYS

2 ΣΥΣΤΗΜΑ SYS IND$

ΣΥΣΤΗΜΑ SYS 3 COL$

4 ΣΥΣΤΗΜΑ CLU$ SYS

ΣΥΣΤΗΜΑ SYS 5 TAB$

ΣΥΣΤΗΜΑ SYS 6 LOB$

7 ΣΥΣΤΗΜΑ COLTYPE$ SYS

8 ΣΥΣΤΗΜΑ SYS SUBCOLTYPE$

9 ΣΥΣΤΗΜΑ NTAB$ SYS

10 ΣΥΣΤΗΜΑ SYS REFCON$

Επιλέχθηκαν 10 γραμμές.

6. Επαληθεύστε το στοιχείο ελέγχου δικαιωμάτων UPDATE σε επίπεδο στήλης:

SQL> ενημέρωση auth.test set owner='STREAM' όπου id =1;

ενημέρωση auth.test set owner='STREAM' όπου id =1

  *

ΣΦΑΛΜΑ στη γραμμή 1:

  ORA-01031: insufficient privileges

Μπορεί να φανεί ότι η τιμή του πεδίου OWNER του πίνακα δοκιμής δεν επιτρέπεται να τροποποιηθεί, αναφορά ORA-01031: Ανεπαρκής άδεια, καθώς τα παραπάνω δίνουν στον χρήστη δοκιμής την άδεια να τροποποιήσει το πεδίο ID του πίνακα δοκιμής, είναι δυνατή η τροποποίηση του πεδίου ID.

SQL> ενημέρωση auth.test set id=10 όπου id=1;

Ενημερώθηκε 1 σειρά.

SQL> επαναφορά;

Η επαναφορά ολοκληρώθηκε.

7. Επαληθεύστε το στοιχείο ελέγχου δικαιωμάτων INSERT σε επίπεδο στήλης:

SQL> εισαγωγή στο auth.test values(1,'stream','stream','users');

εισαγωγή στις τιμές auth.test(1,'ροή','ροή','χρήστες')

  *

ΣΦΑΛΜΑ στη γραμμή 1:

  ORA-01031: insufficient privileges

Δεδομένου ότι τα παραπάνω δίνουν στον δοκιμαστικό χρήστη το δικαίωμα εισαγωγής να τροποποιήσει το πεδίο TABLE_NAME του δοκιμαστικού πίνακα, είναι δυνατή η εισαγωγή TABLE_NAME πεδίου, αλλά μόνο εάν τα άλλα πεδία δεν έχουν ΟΧΙ ΚΑΠΟΙΟΥΣ περιορισμούς.

SQL> εισαγωγή στις τιμές auth.test(table_name) («ροή»)·

Δημιουργήθηκε 1 σειρά.

SQL> επαναφορά;

Η επαναφορά ολοκληρώθηκε.






Προηγούμενος:Λεπτομερής οδηγός εγκατάστασης βήμα προς βήμα για το Oracle 10G
Επόμενος:Αφού ενεργοποιηθεί το Tencent Analytics, το σύστημα είναι απασχολημένο, δοκιμάστε ξανά αργότερα
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com