fishScript.com d
Home| Progetto| Web| Faq| Acronimi

Argomenti







PLSQL... Script: Esempio tipo VARRAY
Oracle... Faq: Rename column

Shell scripting... Script: Passing parameters to shell script

A User Agent, like a web browser, uses HTTP to request a HTML document



In programming the danger of exploring the small details of coding is that you get obsessed with every line of code you write, thereby greatly reducing productivity.
In general, is not worth obsessing over code.
On the other hand you should code with deliberation and intent. Steven Feurstein Oracle Magazine July /August 2004

A User Agent, like a web browser, uses HTTP to request a HTML document

Oracle

Home >Oracle > Checking privileges on oracle objects

Stampa  Stampa


Recently some colleagues did get sort of lost looking for their privileges on some other schema procedures and directories.
So as requested, it follows some brief suggestions on checking user privileges on different oracle objects. Many users know that to check if a schema has privileges on another schema's table simply need to check the dictionary view user_tab_privs.
For example, if USER_A creates a table and allows USER_B to query and update it:

SQLPLUS> create table t(n number); SQLPLUS> grant select, insert on t to USEER_B;

Then schema USER_B can check his privileges on USER_A objects querying the view user_tab_privs:

SQLPLUS> select * from user_tab_privs where owner='USER_A';

GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
USER_B USER_A T USER_A SELECT NO NO
USER_B USER_A T USER_A UPDATE NO NO

But what about privileges on other objects such as procedures or directories. Following oracle naming logic, We would look for user_procedures_privs , user_directories_privs or something like that, and get just "object not found". As a matter of fact, until now (Oracle 10g), user_tab_privs, dba_tab_privs, all_tab_privs are the dictionary objects to check schemas privileges.
If, for example USER_A creates a procedure and a oracle directory and allows USER_B to executing on the first, and reading, writing on the other.

SQLPLUS>create or replace procedure pro_joke as begin dbms_output.put_line('Just a joke'); end; /

SQLPLUS> grant execute on pro_joke to USER_B;

SQLPLUS> create or replace directory tmp_dir as '/tmp';

SQLPLUS> grant read, write on directory tmp_dir to USER_B;


Now USER_B wants to check his privileges on USER_A new objects. (By the way, note carefully, the query where condition is set on grantor not on owner as before, because the owner of an Oracle directory is by default SYS).

SQLPLUS> select * from user_tab_privs where grantor='USER_A';

GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
USER_B USER_A T USER_A SELECT NO NO
USER_B USER_A T USER_A INSERT NO NO
USER_B USER_A PRO_JOKE USER_A EXECUTE NO NO
USER_B SYS TMP_DIR USER_A WRITE NO NO
USER_B SYS TMP_DIR USER_A READ NO NO


So [dba/all/user/]_tab_privs is the source of not only tables but objects privileges. Next question is if privileges on tables, views, procedures, functions, directories merge all in the same view tab_privs, how to know which kind of objects we have ?
Answer is easy, joining to all_objects views:


SQLPLUS>col owner format a12;
SQLPLUS>col object format a12;
SQLPLUS>col object_type format a16;
SQLPLUS>col privilege format a16;

SQLPLUS> select p.table_name object, o.object_type, p.privilege , p.owner from user_tab_privs p, all_objects o where p.table_name = o.object_name order by 1;

OBJECT OBJECT_TYPE PRIVILEGE OWNER
PRO_JOKE PROCEDURE EXECUTE USER_A
T TABLE SELECT USER_A
T TABLE INSERT USER_A
TMP_DIR DIRECTORY WRITE SYS
TMP_DIR DIRECTORY READ SYS




Tutorial
Flashback database to timestamp ripristinare il database ad una data determinata [Oracle] 
Auditing for wrong sql How to intercept wrong dml sql statement  [Oracle] 
Using data pump in interactive mode  [Oracle] 
Alter session set current_schema How to query other user tables without specify the schema name [Oracle] 
Procedura conteggio righe tutte le tabelle di uno schema esempio utilizzo NDS [PLSQL] 
Inserire righe in tabelle utilizzando %rowtype scrivere codice pl/sql compatto [PLSQL] 
Generazione di numeri casuali dbms_random.value [PLSQL] 
Eseguire comando truncate di tutte le tabelle di uno schema atraverso dizionario dati e istruzione sql dinamica  [PLSQL] 
Dropping a database  [Oracle] 
Create new user basic sql statements [Oracle] 
Viste note e appunti [Oracle] 
NOT EXISTS clause basic example [Oracle] 
Creazione di un database Oracle 10g da linea di comando esempio su sistemi Windows Server / XP: comandi e script [Oracle] 
Clean up audit tables remove auditing logs  [Oracle] 
Nomenclatura oracle tipologie oggetti catalogo  [Oracle] 
Script
dbms_output.put_line Stampare spazi bianchi [Oracle] 
Opzione DEFAULT per il valore di una colonna  [Oracle] 
Cercare le colonne in uno schema utilizzare le tabelle del dizionario dati di Oracle [Oracle] 
Esempio script dos per eseguire export di schema automatizzare procedure di export e rinominare il file in base alla data corrente [Oracle] 
Dato il nome di una vista ricava informazioni su tipo e attributi della colonna di riferimenti tabelle dizionario dati [Oracle] 
Redo log ricollocare/trasferire i file di Redo [Oracle] 
Scrivere su un file esempio con UTL_FILE package [PLSQL] 
Leggere un file di testo  [PLSQL] 
Esempio funzione MOD in un loop ... [PLSQL] 
Record sintassi di base: definizione, dichiarazione, assegnazione e stampa [PLSQL] 
Errori intercettare codice e descrizione errori sql [PLSQL] 
Esempio inserimento righe all'interno di un loop  [PLSQL] 
Cursore implicito SQL esempio con SQL%ROWCOUNT [PLSQL] 
Esempio tipo VARRAY gestione array [PLSQL] 
TYPE TABLE utilizzare le collections [PLSQL] 
Comandi
Modificare il formato di default  [Oracle] 
systimestamp  [Oracle] 
CURRENT_TIMESTAMP  [Oracle] 
Spostare un indice in un diverso tablespace  [Oracle] 
analyze  [Oracle] 
Costruire istruzioni sql dinamiche il carattere speciale &  [Oracle] 
Exp utility esempio export di singole tabelle [Oracle] 
Group by mese di colonna di tipo data  [Oracle] 
ALTER SEQUENCE Modificare una sequenza [Oracle] 
Spazio libero nei tablespace utilizzo tabella DBA_FREE_SPACE [Oracle] 
NLS_DATABASE_PARAMETERS ricavare i parametri del database [Oracle] 
Lista control files  [Oracle] 
Spostare una tabella in un diverso tablespace  [Oracle] 
Creazione di una directory in ambiente oracle  [Oracle] 
Funzione TRUNC esempio visualizzazione primo giorno del mese corrente [Oracle] 
Codici errore
Errore connessione client ORA-12638 Credential retreival failed [Oracle] 
impdp / expdp importare in sql metadata del database datapump per esportare ed importare metatadati  [Oracle] 
ORA-06553: PLS-213,ORA-06553: PLS-213,ORA-06553: PLS-213 Errori in fase di creazione database, occorre eseguire gli script di catalog [ERRORI] 
Operazioni sulle date utilizzando il nome dei mesi NLS_DATE_LANGUAGE ORA-01843: mese non valido / not a valid month [Oracle] 

signal Marco Magnani marcomagnani@fishscript.com



Cerca




Oracle... Info: Shared pool

Anger is creative, depression is useless.
Dyson, Freeman J.


Anger is creative, depression is useless.
Dyson, Freeman J.

Oracle... Info: dbms_output.put_line

Oracle... Citazioni: Designing an efficient Schema ...

Oracle... Definizioni: Schema

Oracle... Definizioni: Transazione


Shell scripting... Script: Ciclo sul contenuto directory



fishScript.Com is accessible by Mobile access technology as mobile phones, Palm and Pocket PC .

Nicoleta e Marco Magnani tutorial, examples, courses, esempi, corsi, esercizi, appunti vari Dottoressa Nicoleta Dragu Formatrice Docente Insegnante Mediatrice Culturale Dott. Marco Magnani Universita La Sapienza Roma Master Computer Science Hunter College New York , Data Base Administrator DBA oracle System architect

Last modified: 2017-11-30 amministratore@fishscript.comNico and Marco Magnani Software Production
Home|About this Site © 2003-2008 www.fishScript.com ®