Instrucțiuni de acordare a sfaturilor și trucurilor oracle - programare sql

Implementarea instrucțiunii GRANT în sistemul Oracle suportă un număr mare de opțiuni și schimbări. Sintaxa este următoarea.

[rol] [, ...]> [ON

[JAVA [] [schemaName.] [Obiect]> TO

[CU OPȚIUNI] [IDENTIFICAT prin parolă] [WItN ADMIN OPTION];







Puteți atribui mai multe privilegii unei singure instrucțiuni, dar aceste privilegii trebuie să fie de același tip (obiect, sistem sau rol).

De exemplu, puteți furniza utilizatorului cu trei privilegii de obiect în același tabel cu o singură instrucțiune GRANT, și apoi utilizați o instrucțiune separată pentru a atribui două privilegii de sistem nici un rol, iar a treia instrucțiunile pentru a atribui un utilizator mai multe roluri, dar nu poate face totul într-o singură instrucțiune GRANT .

Următoarele sunt parametrii declarației de platformă Oracle GRANT.

Privilegiile pentru a accesa obiectul specificat pentru schemă (de exemplu, un tabel sau o vizualizare) sunt atribuite destinatarului specificat (numele destinatarului) sau rolurilor. Puteți combina mai multe privilegii de obiecte, obiecte de schemă sau destinatari într-o singură instrucțiune. Cu toate acestea, nu puteți combina într-o singură instrucțiune atribuirea privilegiilor sau a rolurilor de sistem cu atribuirea privilegiilor de obiect. Următoarele privilegii de obiect există.

Sunt atribuite toate privilegiile disponibile pentru accesarea obiectului schemei. Poate fi aplicată în tabele.

Se acordă dreptul de a modifica o tabelă existentă utilizând instrucțiunea ALTER TABLE. Poate fi aplicat la tabele și secvențe.

Puteți accesa tabelul folosind depanatorul. Acest acces este valabil pentru orice declanșator de tabel și orice informație despre codul SQL care accesează direct tabelul. Puteți aplica tabele, vizualizări, proceduri, funcții, pachete, obiecte Java și tipuri.

Puteți executa o procedură stocată, o funcție definită de utilizator sau un pachet. Puteți aplica proceduri, funcții, pachete, obiecte Java, biblioteci, tipuri, tipuri de indici și operatori de utilizare.

Se acordă dreptul de a crea indexuri pe o masă.

(Pe comanda REFRESH QUERY REWRITE>

Privilegiul este de a crea vederi materializate care sunt actualizate după tranzacție (refresh-on-commit) sau de a crea o vizualizare materializată pentru rescrierea interogărilor față de tabelul specificat. Aplică numai la vederi materializate.

Dreptul este acordat pentru a determina constrângerile care asigură integritatea referențială. Pot fi folosite în tabele.

(SELECTARE | INSERT | UPDATE DELETE>

Dreptul este acordat executării comenzilor SQL corespunzătoare pentru obiectul specificat de schemă. Acesta poate fi folosit în tabele, vizualizări, secvențe (numai SELECT) și reprezentări materializate (numai SELECT). Rețineți că trebuie să acordați privilegiul SELECT utilizatorului sau rolului care necesită privilegiul DELETE. Puteți atribui privilegii la nivelul coloanelor prin includerea în declarație, după numele obiectului, a unei liste de coloane cu paranteze. Acest lucru este posibil numai dacă acordați privilegii de obiect INSERT, REFERENCES sau UPDATE într-un tabel sau vizualizare.

Dreptul de a crea reprezentările copilului din vizualizarea specificată este acordat. Este folosit numai cu vederi și tipuri.

Parola privilegiată Oracle specificată este atribuită unuia sau mai multor utilizatori sau roluri. De exemplu, puteți acorda privilegii, cum ar fi CREATE TRIGGER sau ALTER USER. În ambele cazuri, acordarea unui privilegiu de sistem dă utilizatorului sau rolului dreptul de a executa o comandă cu numele corespunzător. O listă completă a privilegiilor de sistem este prezentată la punctul 3.2 de mai jos în această secțiune.

Rolul este atribuit utilizatorului sau unui alt rol. În plus față de rolurile utilizatorilor, există mai multe roluri de sistem gata făcute împreună cu Oracle.







CONNECT, RESOURCE și DBA

Oferit pentru compatibilitate cu versiunile anterioare ale Oracle.

Nu utilizați aceste roluri în versiunile actuale și mai noi ale Oracle, deoarece în viitor suportul lor poate fi anulat.

DELETEJOA TALOGJROLE, EXECUTEJJA TALOGJROLE și SELECT_CA TALOGJ.OLE

Utilizatorii alocați acestui rol pot șterge, executa și selecta date din vizualizările și pachetele de dicționare.

EXP_FULL_DATABASE și IMP_FULL_DATABASE

Utilizatorilor cărora li se atribuie acest rol pot rula utilitarele de import și export.

AQJJSERJROLE și AQ_ADMINISTRATORJROLE

Utilizatorii care au atribuit acest rol pot utiliza sau administra funcționalitatea Oracle, cum ar fi Advanced Queuing.

Se atribuie numai Oracle Enterprise Manager și agent inteligent.

RECOVERY_CATA LOGO WNER

Este un privilegiu de a crea utilizatori care dețin propriul catalog de recuperare.

Se acordă un privilegiu pentru accesarea zonelor de dicționare a datelor care sunt utilizate pentru a suporta servicii eterogene Oracle.

Utilizatorului sau rolului i se acordă privilegiul de a accesa obiectul schemei. Pentru baza de date cu obiecte includ tabele, vederi, secvențe, proceduri memorate, funcții definite de utilizator, pachete, materializate vederi, tipuri definite de utilizator, biblioteci, tipuri de index, operatori personalizate sau sinonime ale acestor obiecte. Dacă numele schemei nu este specificat, schema utilizatorului actual va fi implicită. Platforma Oracle acceptă, de asemenea, două cuvinte cheie pentru cazuri speciale.

Permisiunile sunt acordate obiectului director, care este un obiect Oracle care corespunde directorului din sistemul de fișiere.

Drepturile de acces sunt acordate obiectelor Java din schemele SOURCE și RESOURCE.

Specifică utilizatorul sau rolul care primește acest privilegiu. Cuvântul cheie PUBLIC poate fi de asemenea utilizat atunci când anulați privilegiul atribuit rolului PUBLIC. Puteți lista mai mulți destinatari ai privilegiului separați prin virgule.

Permite destinatarului să acorde privilegii altor utilizatori sau rolului PUBLIC, dar nu are alte roluri.

CU OPȚIUNEA IERARHIEI

Permite destinatarului privilegiului din obiectul părinte să obțină aceste privilegii în toate obiectele copilului. Acest lucru se aplică tuturor descendenților care vor fi creați în viitor. Puteți utiliza această opțiune numai când asociați un privilegiu SELECT de obiect.

IDENTIFICAT prin parolă [CU OPȚIUNI DE ADMINISTRARE]

Setați sau modificați parola pe care trebuie să o utilizeze destinatarul privilegiului pentru a obține un rol.

Atribuirea privilegiilor utilizatorilor are efect imediat. Angajarea rolului are efect imediat, dacă rolul este implicat. În caz contrar, atribuirea va intra în vigoare după ce rolul este activat. Rețineți că rolurile pot fi atribuite utilizatorilor și altor roluri (inclusiv PUBLIC). exemplu:

GRANT sales_reader TO salesjnanager;

Pentru a acorda privilegii de acces la o vizualizare, trebuie să aveți date despre privilegii în tabelele de prezentare care stau la baza, specificând clauza WITH GRANT OPTION.

Dacă doriți să acordați privilegii tuturor utilizatorilor, pur și simplu atribuiți aceste privilegii de rol PUBLIC.

GRANT SELECT pe work_schedule TO public;

Cu toate acestea, există anumite limitări în furnizarea de privilegii și roluri de sistem.

  • Un privilegiu sau un rol nu poate fi găsit în instrucțiunea GRANT mai mult decât o dată.
  • Rolul nu poate fi atribuit la sine.
  • Rolurile nu pot fi atribuite recursiv, adică nu puteți asocia rolul sales_reader rolului sales_manager și apoi asociați rolul sales_manager rolului sales_reader.

Puteți atribui mai multe privilegii în aceeași declarație GRANT. Cu toate acestea, aceste privilegii trebuie să se aplice obiectelor de același tip.

GRANT UPDATE (emp_id, job_id), REFERINȚE (emp_id)

Ca retragere, acordarea oricăror privilegii de acces la obiect permite utilizatorului (sau rolului) să blocheze tabelul cu orice mod de blocare utilizând instrucțiunea Oracle LOCK TABLE.

Aproape toate funcționalitățile și comenzile suportate de Oracle pot fi atribuite ca privilegii în instrucțiunea GRANT (așa cum se arată în 3.2). Beneficiile pot fi administrate nu numai în ceea ce privește obiectele din baza de date (cum ar fi tabele și vizualizări) și comenzile de sistem (cum ar fi CREATE ANY TABLE), dar, de asemenea, la schemele de obiecte (cum ar fi DIRECTORY, SURSA JAVA și resurse).

Parametrul ORI, prezentat în 3.2, acordă drepturile de execuție ale acestei instrucțiuni pentru obiecte de tipul specificat care aparțin oricărui utilizator din schemă. Fără vreo opțiune, utilizatorul poate aplica instrucțiuni numai obiectelor din propria sa schemă. O listă mai completă a privilegiilor de sistem ale Oracle este dată în 3.2.

Toate privilegiile indicate în 3.2 și conținând cuvântul cheie ORICE sunt de o importanță deosebită. În special, cuvântul cheie ORICE oferă utilizatorilor dreptul de a efectua operațiunea specificată în orice schemă. Dacă doriți să includeți toate schemele utilizatorilor aici, dar excludeți schema SYS, setați parametrul de inițiere 07 ACCESSIBILITY DICTIONARY la valoarea sa implicită FALSE.

Informații suplimentare despre acest subiect

Unele sfaturi și tehnici pentru utilizarea instrucțiunii INSERT în bazele de date de pe platforma Oracle







Articole similare

Trimiteți-le prietenilor: