Originariamente inviato da raveral
Ciao, io utilizzo Oracle.
Ogni utente ha il proprio schema; lo schema è una collezione di oggetti e può contenere oggetti quali le tabelle, le viste, i sinonimi, le classi java ecc.

Lo schema di un utente ha lo stesso nome dell'utente, nella pratica schema e utente io li considero un po' come un tutt'uno, in quanto lo schema è la collezione degli oggetti dell'utente.

Per rispondere all'ultima tua domanda, puoi condividere gli oggetti appartenenti a un utente (e quindi al suo schema) ad altri utenti attraverso le grant, cioè i permessi. Per fare un esempio puoi dare la grant di select su una tabella dell'utente1 a un utente2, così da fare accedere l'utente2 alla tabella ma solo in select ( non per esempio in insert, update o delete).
Spero di non averti complicato le idee...
no non me le hai complicate.. anzi, questo è un argomento che mi interessa non poco, visto che oracle è divinizzato da tutti e voglio capire il perchè (a parte le prestazioni ).
Ok, tu dici che posso dare dei permessi all'utente2 per farlo accedere magari a determinate funzioni sulle tabelle dell'utente1. Il problema è che, almeno per quello che ho capito, oracle non permette di creare un utente senza schema (senza database insomma.. senza oggetti).. cioè se voglio creare l'utente2 senza associarlo ad uno schema, non posso farlo.. quindi a questo punto mi interessa poco dare dei permessi all'utente2 in modo da poterlo far accedere alle tabelle dell'utente1 visto che potrei creare delle tabelle nel suo schema creato al momento della creazione utente..
Certo, in alcuni casi è conveniente far accedere un certo utente ad un certo schema magari per non duplicare le tabelle in schemi diversi.. ma questo è un caso abbastanza raro..
io non mi spiego il perchè di questa associazione di un utente con uno schema..
Se voglio creare un utente senza database in oracle non si può fare