Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Join su diversi db e assegnazione grant
martedì 31 agosto 2010 - 10.29
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Windows Server 2003
|
SQL Server 2005
kiaraluna
Profilo
| Newbie
5
messaggi | Data Invio:
mar 31 ago 2010 - 10:29
Buongiorno a tutti ........
ho creato una vista che effettua una join tra tabelle di divesi db
utilizzando la seguente sintassi di esempio (la vista è + complessa in realtà ma.....
non è questo il problema) :
SELECT * FROM db1.dbo.Tabella1 T1 JOIN Tabella2 T2
ON T1.campo1=T2.campo2
La vista funziona perfettamente restituisce i record voluti ecc...
Per permettere ad un utente di eseguire la select sulla vista devo necessariamente abilitare la vista e la tabella presente sul db1 ......... non esiste un modo per evitare di dover assegnare la grant di select anche sulla tabella del db1?
grazie in anticipo ......
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 31 ago 2010 - 14:47
>La vista funziona perfettamente restituisce i record voluti ecc...
>Per permettere ad un utente di eseguire la select sulla vista
>devo necessariamente abilitare la vista e la tabella presente
>sul db1 ......... non esiste un modo per evitare di dover assegnare
>la grant di select anche sulla tabella del db1?
Puoi ovviare al problema abilitando il cross-database ownership chaining però occhio ai potenziali pericoli di sicurezza elencati in questo paragrafo dei Books Online:
http://technet.microsoft.com/en-us/library/ms188676.aspx
> grazie in anticipo ......
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
kiaraluna
Profilo
| Newbie
5
messaggi | Data Invio:
mar 31 ago 2010 - 15:39
Grazie per il suggerimento!!!
Proprio non è previsto nessun altro metodo meno ........rischioso?????
Una sorta di cross-tabella che permetta di l'accesso alla seconda tabella senza che
l'utente finale sia abilitato a vederne il contenuto!!!!
Nemmeno se la seconda tabella è chiamata cn una funzione di tipo tabella o altri strumenti?????
scusami se insisto ma ....è antipatico dover concedere a cascata autorizzazioni sui vari oggetti ogni volta
che si abilita un vista complessa alimentata da oggetti presenti su vari db
saluti
PS: se utilizzassi la clausola
EXECUTE AS login = 'utente'
posso creare una Funzione o generare una vista che legge la tabella del db1 dicendogli di usare un determinato utente (e poi criptarla magari....per maggiore sicurezza)
questo mi potrebbe permettere evitare il grant all 'utente finale o no ?????
grazie per la pazienza
bye
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 31 ago 2010 - 20:56
>Proprio non è previsto nessun altro metodo meno ........rischioso?????
Secondo me la soluzione migliore consiste nel mappare lo la login anche al sedondo db definendo un opportuno user account ed assegnando le permission di SELECT sulla tabella interrogata dalla vista.
>scusami se insisto ma ....è antipatico dover concedere a cascata
>autorizzazioni sui vari oggetti ogni volta
>che si abilita un vista complessa alimentata da oggetti presenti
>su vari db
Generalmente le cose antipatiche sono anche quelle più sicure
> PS: se utilizzassi la clausola
>EXECUTE AS login = 'utente'
>posso creare una Funzione o generare una vista che legge la tabella
>del db1 dicendogli di usare un determinato utente (e poi criptarla
>magari....per maggiore sicurezza)
>questo mi potrebbe permettere evitare il grant all 'utente finale
>o no ?????
No.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !