SQL Tips & Tricks, permessi tra database

Quando si crea un database di warehouse, che consolida informazioni da varie sorgenti, può essere richiesto di impostare dei criteri di sicurezza per l’accesso ai dati. Se le informazioni si trovano in database differenti è necessario che l’utente abbia accesso esplicito a tutte le tabelle che saranno interrogate.

Ma, se si vuole proteggere una tabella di un database esponendola tramite una vista filtrata in un altro database, l’attribuzione dei permessi crea un problema di sicurezza. L’utente infatti può vedere tutti i dati (anche quelli non filtrati) semplicemente accedendo alla tabella originale.

Immaginiamo di avere la tabella “Entries” nel database “DB1” e di esporla come vista “Your Entries” nel database “DB2”:

SQL Server permette di evitare il controllo di accesso tra database che hanno lo stesso proprietario. Questa tecnica consente di attribuire permessi alla vista “Your Entries” senza doverli concedere anche alla tabella “Entries” da cui dipende.

Per prima cosa è necessario attivare l’ownership chaining sul server:

Infine si attiva l’ownership chaining su ogni database:

Nel caso in cui il proprietario dei database sia diverso, lo si può cambiare con questa stored procedure:

 

Per supporto commerciale puoi contattare Ahead Informatica al numero +39 0113473770
oppure lascia tuoi recapiti e sarai contattato il prima possibile:



 

Lascia un commento