Desidero concedere a un utente solo la modifica di una colonna nella tabella. Che comando uso qui? Uso il database Oracle 11g. So già come posso garantire solo la lettura o l'eliminazione sull'intera tabella, ma come faccio a farlo solo per una colonna o più? pls dare un esempio.Concedere modifica su una sola colonna nella tabella
risposta
Per esempio, si desidera concedere aggiornamento privilegio sulla colonna di ename solo, poi dare la seguente dichiarazione (dove xyz è il nome utente)
grant update (ename) on emp to xyz;
Sintassi :
grant update(column-name) on table-name to user-name
EDIT: (per granti ng selezionare privilegio)
Per assegnare l'istruzione select su emp table a XYZ e per rendere XYZ in grado di inoltrare ulteriormente questo privilegio, è necessario fornire la clausola WITH GRANT OPTION nella dichiarazione GRANT come questa.
grant select on emp to xyz with grant option;
Inoltre, Per esempio si desidera concedere aggiornamento privilegio su unica colonna ename e inserire privilegio solo su empno e Ename colonne, si può fare questo:
grant update (ename),insert (empno, ename) on emp to xyz;
Sulla base this source:
può essere concessa solo INSERT
, UPDATE
, e REFERENCES
privilegi a livello di colonna. Quando si concede INSERT
a livello di colonna, è necessario includere tutte le colonne non nulle nella riga.
Ecco un esempio:
GRANT update (column_name) ON table_name TO user_name;
thx che ha funzionato perfettamente, ma ho appena rosso che non funziona con le istruzioni select. Ho fatto in alternativa una vista. è corretto? –
intendi ... non puoi concedere il privilegio di selezione? beh penso che possiamo concedere anche privilegi selezionati, controlla modifica –
Nota: devi concedere il privilegio SELECT sulla tabella insieme al privilegio UPDATE. –