Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Schema, proprietario per oggetti in MS SQL

L'uso degli schemi è eccezionalmente vantaggioso in caso di problemi di sicurezza.

Se si dispone di più applicazioni che accedono al database, è possibile che non si desideri concedere al reparto Logistica l'accesso ai record delle Risorse umane. Quindi inserisci tutte le tue tabelle delle risorse umane in uno schema hr e consenti l'accesso solo agli utenti con il ruolo hr.

Sei mesi dopo, Logistics ora ha bisogno di conoscere le note spese interne in modo da poter inviare tutte queste tavolozze di penne blu alle persone che si trovano nella posizione corretta. È quindi possibile creare una stored procedure che venga eseguita come utente che dispone dell'autorizzazione per visualizzare lo schema hr e lo schema logistico. Gli utenti della logistica non hanno mai bisogno di sapere cosa sta succedendo nelle risorse umane e tuttavia ottengono comunque i loro dati.

Puoi anche usare gli schemi nel modo suggerito da cfeduke e usarli semplicemente per raggruppare le cose nel browser degli oggetti. Se lo stai facendo, fai solo attenzione perché potresti finire per creare Person.Address e Company.Address quando hai davvero solo bisogno di un singolo dbo.Address (non sto bussando al tuo esempio, cfeduke, lo sto solo usando per illustrare che entrambi le tabelle degli indirizzi potrebbero essere le stesse o potrebbero essere diverse e che YMMV).