Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13251|Antwort: 0

[Quelle] Oracle-Datenbank-Kolumnen-Berechtigungskontrolle

[Link kopieren]
Veröffentlicht am 11.12.2015 23:47:14 | | |
Der Kunde hat einen Bedarf an einer Tabelle mit mehr als 150 Feldern, der Kunde benötigt nur einige Felder, die von den Leuten der Scanfirma gesehen werden, diese Anforderung lässt sich leicht mit einer Ansicht erfüllen, der Kunde fordert auch diese Felder an, die Scanfirma kann nur einzelne Felder modifizieren, ich habe wirklich noch nie einen solchen Bedarf an Berechtigungskontrolle auf Spaltenebene erlebt, ich habe ein Experiment durchgeführt, ich finde es sehr interessant, ich schreibe es auf

Der Kunde hat eineNachfrage, eine Tabelle mit mehr als 150 Feldern, bat der Kunde, nur einige der Felder den Personen zu zeigen, die das Unternehmen gescannt hatten, diesNachfrageEs lässt sich leicht mit einer Ansicht implementieren, und der Kunde verlangt, dass diese Felder verlangt werden, das Scanfirma kann nur einzelne Felder modifizieren. Ich habe wirklich noch nie einen solchen Bedarf an Berechtigungskontrolle auf Spaltenebene erlebt, ich habe ein Experiment gemacht, ich finde es sehr interessant, ich nehme es auf.TestProzess.

1. Erstellen Sie eine Testtabelle und fügen Sie Punkttestdaten ein:

  SQL> Tabellentest erstellen (ID-Nummer, table_name varchar2(50),

Eigentümer Varchar2(50)TABLESPACE_NAME Varchar2(50));

Tabelle erstellt.

SQL> in Test auswählen, rownum,table_name,owner,

TABLESPACE_NAME aus dba_tables;

5490 Reihen erstellt.

SQL> Commit;

Commitment abgeschlossen.

2. Erstellen Sie einen Testbenutzer und geben Sie grundlegende Berechtigungen:

SQL> CONN / AS SYSDBA

Verbunden.

SQL> Erstellen des Benutzerstroms, der durch die Standard-Tabellenbenutzer des Stroms identifiziert wird;

Vom Nutzer erstellt.

SQL> verbinden, Ressource zum Stream;

Grant hatte Erfolg.

3. Erteile Testnutzern Berechtigungen auf Spaltenebene:

SQL> conn auth/auth

Verbunden.

SQL> Grant Update (id) auf Test to Stream;

Grant hatte Erfolg.

SQL> Insert (table_name) beim Test zum Stream;

Grant hatte Erfolg.

SQL>

SQL> Grant Select beim Test zum Streamen;

Grant hatte Erfolg.

4. Abfrage von Berechtigungseinstellungen auf Spaltenebene:

SQL> select GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,

VON user_col_privs VERLIEHEN;

INHABER TABLE_NAME COLUMN_NAME GRANTOR PRIVILEGE GRA

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

STREAM AUTH TEST TABLE_NAME AUTH INSERT NO

AUT AUTH TEST ID AUTH INSERT NO

AUT AUTH TEST-ID AUTH UPDATE NO

STREAM-AUTHENTIFIZIERUNG TEST-ID AUTHENTIFIZIERUNGSUPDATE NEIN

5. Login-Test-Nutzer überprüft die SELECT-Berechtigung:

SQL> conn stream/stream

Verbunden.

SQL> wählen * aus (auswählen * aus auth.test-Reihenfolge mit 1), wobei rownum< =10;

ID TABLE_NAME BESITZER TABLESPACE

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

1 ICOL$ SYS-SYSTEM

2 IND$ SYS SYSTEM

3 COL$ SYS-SYSTEM

4 CLU$ SYS-SYSTEM

5 TAB$ SYS-SYSTEM

6 LOB$ SYS-SYSTEM

7 COLTYPE$ SYS-SYSTEM

8 SUBCOLTYPE$ SYS-SYSTEM

9 NTAB$ SYS-SYSTEM

10 REFCON$ SYS SYSTEM

10 Reihen ausgewählt.

6. Überprüfung der UPDATE-Berechtigungskontrolle auf Spaltenebene:

SQL> update auth.test set owner='STREAM', wobei id =1;

update auth.test set owner='STREAM', wo id =1

  *

FEHLER in Zeile 1:

  ORA-01031: insufficient privileges

Es ist zu erkennen, dass der Wert des OWNER-Feldes der Testtabelle nicht geändert werden darf, Bericht ORA-01031: Unzureichende Berechtigung, da das oben Genannte dem Testbenutzer die Berechtigung gibt, das ID-Feld der Testtabelle zu verändern, ist es möglich, das ID-Feld zu ändern.

SQL> update auth.test set id=10, wobei id=1 ist;

Eine Reihe aktualisiert.

SQL> Rollback;

Rollback abgeschlossen.

7. Überprüfen Sie die Berechtigungskontrolle auf Spaltenebene:

SQL> in auth.test-Werte einfügen (1,'stream', 'stream', 'users');

Fügen Sie in auth.test die Werte ein(1,'stream','stream','users') ein)

  *

FEHLER in Zeile 1:

  ORA-01031: insufficient privileges

Da das oben Genannte dem Testbenutzer die Einfügungsberechtigung gibt, das TABLE_NAME Feld der Testtabelle zu ändern, ist es möglich, TABLE_NAME Feld einzufügen, aber nur, wenn die anderen Felder NICHT EINIGE Einschränkungen besitzen.

SQL> in auth.test(table_name)-Werte einfügen ('stream');

1 Reihe erstellt.

SQL> Rollback;

Rollback abgeschlossen.






Vorhergehend:Detaillierte Schritt-für-Schritt-Installationsanleitung für Oracle 10G
Nächster:Nachdem Tencent Analytics aktiviert ist, ist das System besetzt, bitte versuchen Sie es später noch einmal
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com