Schemele bazei de date SQL Server 2018, separarea utilizatorilor și schemelor

SELECT * FROM MyServer.MyDatabase.User1.Table1;

În cazul în care dezvoltatorul utilizat în codul de aplicare, doar numele obiectului (de exemplu, SELECT * FROM Tabelul 1), apoi conectați la serverul aplicației, în numele unui alt utilizator poate avea probleme, pentru că în loc de Utilizator1 pentru a înlocui numele de utilizator curent (și, în cazul în care obiectul cu același nume completă nu a fost găsit, apoi numele utilizatorului special DBO).

SELECT * FROM MyServer.MyDatabase.Schema1.Table1;

Schema este definită în mod formal ca un set de obiecte în baza de date, unite printr-un spațiu de nume comun. Cel mai simplu mod de a imagina circuitul ca un container logic în baza de date, care pot face parte din tabele, vizualizări, proceduri stocate, funcții definite de utilizator, constrângerile de integritate, tipuri de date de utilizator, precum și alte obiecte de baze de date. Acest container este util pentru obiecte de numire și grupările lor logice, și să acorde permisiuni. De exemplu, în cazul în care baza de date conține un set de tabele cu informațiile financiare, este convenabil să le-a pus într-un singur circuit, și pentru a oferi utilizatorilor cu această schemă de autorizare (de ex. E. Pe set de tabele).

Puteți atribui o schemă implicită utilizatorului. În această schemă, SQL Server va pune, în mod implicit, obiectele create de acest utilizator. În plus, pentru a căuta obiecte accesate de utilizator (de exemplu, în cazul unei interogări SELECT * FROM Table1), SQL Server va fi, de asemenea, în primul rând în schema implicită.

Aplicarea schemei oferă o serie de avantaje suplimentare în comparație cu abordarea veche:

q Utilizatorilor multipli li se poate atribui aceeași schemă implicită, care poate fi utilă atunci când dezvoltați aplicații;

q Multiple utilizatori (prin grupuri Windows sau roluri de baze de date) pot deține aceeași schemă. Astfel, un utilizator poate fi proprietarul a mai multor sisteme simultan;

q când ștergeți un utilizator din baza de date, nu trebuie să redenumiți obiectele acestuia;

q Așa cum am menționat deja, este mai ușor să acordăm permisiuni pentru seturile de obiecte din baza de date.

Schema este creată din containerul Security | Schemas_Database | din Studio Management sau prin utilizarea comenzii CREATE SCHEMA.