Sunteți pe pagina 1din 19

CREAREA UNEI BAZE DE

DATE.
UTILIZATORI ŞI PERMISIUNI
Scripturi SQL. Scripturi de migrare
Scripturile SQL sunt fişiere ce conţin cod SQL, care o dată deschise vor executa anumite operaţiuni
pe baza de date. Ele permit salvarea instrucţiunilor scrise şi repetarea acestora atunci când există
această nevoie.

Putem identifica un script SQL după extensia acestuia de la final şi anume .SQL. Acel fişier conţine comenzi şi instrucţiuni SQL pentru a fi rulat
pe o bază de date, iar în interiorul acestora putem avea mai multe instrucţiuni sau comenzi salvate.

Fişierele .SQL pot fi deschise atât cu SQL Server Management Studio (SSMS), permiţând inclusiv rularea acestora pe baza de date dorită, însă pot
fi deschise şi editate şi cu un editor de text, precum Notepad ori Notepad++. Acestea din urmă nu vor permite rularea fişierului pe baza de date,
însă pot fi folosite pentru a edita codul din interiorul fişierelor.

Pentru realizarea bazei noastre de date, urmează să creăm un fişier cu extensia .SQL ce va conţine instrucţiunile necesare pentru efectuarea acestei
operaţiuni.

Scripturile de migrare (Migration Scripts) sunt tot fişiere SQL care conţin instrucţiuni ce modifică parţial sau complet structura unei baze de date,
aducând modificări specifice ce sunt menite să adreseze anumite schimbări în structura aplicaţiei ce utilizează baza noastră de date.

Scripturile de migrare sunt caracterizate de faptul ca acestea sunt realizate într-o anumită ordine. Parte dintr-o suită de fişiere de migrare poate fi şi
primul nostru fişier pe care îl vom realiza, iar acesta ne va crea baza de date.
Crearea bazei de date
Putem crea o bază de date folosind interfaţa pusă la dispoziţie de SQL Server Management Studio
prin utilitarul său, dar şi prin utilizarea comenzilor T-SQL pe care apoi le vom salva într-un fişier
SQL.

Realizarea unei baze de date folosind instrumentul din SSMS


Pentru a crea o bază de date nouă folosind SSMS, va trebui ca odată ce ne-am autentificat pe
severul nostru, să alegem din partea stângă numele serverului şi să extindem conţinutul acestuia.
Putem face asta fie prin dublu-click fie prin click pe simbolul ”+”.

Putem observa structura diverselor elemente care se regăsesc pe serverul nostru, grupată în
directoare specifice, pentru moment oprindu-ne atenţia asupra directoru- lui ”Databases”.

În acest moment putem alege crearea unei noi baze de date, prin executarea unui click dreapta
pe folderul Databases, după care să alegem New Database.
Din meniul apărut, observăm că avem nevoie să specificam un
nume în câmpul Owner. Acesta reprezintă contul care deţine
baza de date. În câmpul cu numele bazei de date (Database
name) vom scrie ilbah, iar la Owner vom lasă valoarea
implicită şi anume <default>. Putem observa că acest proces
implică de asemenea crearea unor fişiere reprezentând baza
noastră de date efectivă şi un fişier de log, ce va păstra mesaje
despre funcţionarea bazei noastre de date. Cele două fişiere vor
fi stocate fizic la adresa menţionată în coloana Path din structura
afişată.

După adăugarea unui nume pentru baza de date, putem da click pe OK, iar apoi preţ de câteva
secunde, în funcţie de configuraţia fiecărui laptop, baza de date se va crea şi va fi disponibilă pentru
utilizare. Aceasta va apărea automat în partea stângă, în secţiunea de Object Explorer.

Folderul denumit Tables va conţine toate tabelele bazei noastre de date, tabele pe care le vom crea
în continuare. Folderul Views va pastra acele vederi (view-uri) ale bazei noastre de date, iar în
folderul Security vom găsi informaţii referitoare la utilizatori precum şi informaţii despre rolurile pe
care le avem asupra bazei de date.
Realizarea bazei de date folosind instrucţiunile T-SQL şi salvarea lor într-un fişier

Comenzile SQL sunt numite şi Query sau interogări, astfel că în SSMS avem opţiunea de a crea o nouă interogare sau New Query prin click pe
butonul evidențiat.

Rezultatul acestei acţiuni este deschiderea unei ferestre în care vom putea scrie codul SQL pe care apoi îl vom rula.
În această fereastră vom scrie codul pentru realizarea bazei de date, utilizând baza de date MASTER ca şi punct iniţial:

USE master;
GO
CREATE DATABASE ilbah1
ON
( NAME = ilbah1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\ilbah1.mdf',
SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5 )
LOG ON
( NAME = ilbah1_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\ilbah1log.ldf',
SIZE = 5MB, MAXSIZE = 25MB,
FILEGROWTH = 5MB );
GO

USE master specifică faptul că dorim să ne conectăm la baza de date master, aceasta fiind o bază de date sistem care coordonează activităţile
SQL Server şi păstrează informaţiile esenţiale pentru funcţionarea acestuia.

Instrucţiunea GO separă mai multe instrucţiuni SQL într-un fişier, dar mai mult decât atât, le execută secvenţial.

CREATE DATABASE este instrucţiunea pentru crearea bazei de date, ce primeşte un parametru ce va reprezenta numele acesteia. Mai departe
se specifică locaţia pentru crearea bazei de date, respectiv fişierul cu mesajele de log, alături de specificaţii precum şi de limitări în ceea ce priveşte
dimensiunea acestor fişiere.
Pentru a rula o instrucţiune SQL avem la dispoziţie butonul EXECUTE sau putem folosi tasta F5.
Putem executa şi doar o instrucţiune din codul scris, prin selectarea acestuia, iar apoi folosind F5.

Rezultatul rulării acestei comenzi SQL va fi similar cu ce am obţinut mai devreme prin metoda
anterioară, iar faptul că instrucţiunile SQL s-au executat cu succes este menţionat în fereastra
Messages a SSMS.

Pentru a salva codul pe care l-am scris în fereastra NewQuery putem folosi atât combinaţia de taste CTRL+S, dar şi opţiunea disponibilă în meniul
File.
În fereastra care se deschide putem să dăm un nume fişierului nostru, spre exemplu CreateDatabase.sql. Extensia .sql va fi adăugată la finalul
denumirii fişierului, chiar dacă aceasta nu este specificată de noi.
Rolurile utilizatorilor
Pentru utilizatorii care lucrează cu baze de date, întâlnim diferite roluri, fiecare dintre aceștia având o utilitate practică.

db_owner Membri db_owner pot efectua toate activităţile de configurare şi întreţinere pe baza de date ,
dar pot, de asemenea, şi să ruleze baza de date în SQL Server. (În baza de date SQL, unele
activităţi de întreţinere necesită permisi- uni la nivel de server şi nu pot fi efectuate de
db_owners).
db_securityadmin Membri db_securityadmin pot modifica apartenenţa la rol numai pentru roluri personalizate
şi pot gestiona permisiunile.
db_accessadmin Membri db_accessadmin pot adăuga sau elimina accesul la baza de date pentru autentificări
Windows, grupuri Windows şi autentificări SQL Server.
db_backupoperator Membri db_backupoperator pot face copii de rezervă pentru baza de date.
db_ddladmin Membri db_ddladmin pot rula orice comandă Data Definition Language (DDL) dintr-o bază
de date.
db_datawriter Membri db_datawriter pot adăuga, şterge sau modifica date din toate tabelele de utilizator.

db_datareader Membri db_datareader pot citi toate datele din toate tabelele şi vizualizările utilizatorilor.

db_denydatawriter Membri db_denydatawriter nu pot adăuga, modifica sau şterge nici o dată din tabelele
utilizator dintr-o bază de date.
db_denydatareader Membri db_denydatareader nu pot citi date din tabelele şi vizualizările utilizatorilor dintr-o
bază de date.
Crearea unui utilizator
Pentru a permite şi altor utilizatori să se autentifice pe server pentru a interacţiona cu o baza de
date, putem să creăm conturi de utilizatori. Fiecare utilizator va putea avea un rol bine definit
astfel încât activitatea lui pe baza de date să fie în conformitate cu drepturile sale.

Din Object Explorer, căutam folderul Security şi dăm click dreapta pe acesta, alegând
opţiunea NewLogin.

În fereastra care ni se deschide vom completa câmpurile pentru o nouă autentificare, respectiv un
nume şi o parolă.

Pentru parolă, opţiunea de Enforce password policy va aplica o serie de măsuri de securitatea asupra parolei setate, astfel dacă se doreşte setarea
unei parole simple de tipul test123 va trebui să debifaţi această opţiune.

În acelaşi context al siguranţei, Enforce password expiration va solicita utilizatorului reînnoirea parolei după o anumită perioadă de timp.

Dacă realizăm această autentificare pentru un utilizator nou, putem să îi solicităm ca în momentul în care se autentifică cu parola setată de noi, să i
se ceară schimbarea acesteia, astfel încât să fie unică pentru el. Acest aspect este gestionat de opţiunea User must change passowrd at next login.
În partea de jos, avem opţiunea de a specifica Noua autentificare creată este acum Putem să realizăm acest lucru şi folosind
pentru ce bază de date este destinată această vizibilă în folderul Logins dacă îl comenzi SQL, precum cea de mai jos.
autentificare, având opţiunea de a alege din lista extindem.
derulantă bazele de date create. Noi vom opta CREATE LOGIN MyLogin WITH
pentru master. PASSWORD = '1AsdfttG!23';
O dată creată autentificarea putem crea şi un
utilizator pe care să îl facem responsabil de
anumite operaţiuni pe baza de date. folosindu-ne
de roluri.

Vom selecta astfel din ObjectExplorer baza de


date creată anterior, denumită ilbah pe care o
extindem şi identificăm folderul Security.

! Atentie: există două foldere Security, iar


acestea nu sunt se referă la acelaşi lucru.

Unul dintre ele este pentru server, iar cel


marcat cu galben in imaginea din dreapta se
referă la elementele de secu ritate asupra bazei
de date specifice.

Pentru a crea un utilizator, click dreapta pe


Security > New > User.
În fereastra care ni se va deschide, vom specifica numele de Alegem Browse pentru a căuta: Putem face acelaşi lucru şi folosind
utilizator, iar apoi cu ajutorul opţiunii de căutare a unei comenzile SQL pentru crearea
autentificări (butonul cu cele trei puncte) vom alege utilizatorului şi atribuirea unei
autentificarea creată anterior. autentificări, folosind comanda de
mai jos:

CREATE USER florin FOR


LOGIN MyLogin;

Iar din opţiunile disponibile vom bifa


autentificarea pe care am creat-o mai
devreme, iar apoi alegem OK pentru
toate celelalte ferestre.
Dacă am ajuns la pasul acesta înseamnă că avem un utilizator adăugat cu succes pentru baza de date
numită ilbah. Putem acum vedea prezent utilizatorului în folderul Users din folderul Security aflat
sub baza de date.

Tot ce ne mai rămâne este să acordăm drepturi acestui utilizator, iar pentru această operaţiune
vom selecta utilizatorul creat, click dreapta si alegem Properties.
În fereastra ce se deschide, vom alege Securables, apoi butonul de Search, iar în
fereastra nou deschisă putem alege ce roluri să îi aplicăm utilizatorului nostru.

În lista derulantă disponibilă, la selectarea opţiunii All objects belonging to the schema
vom putea alege din rolurile disponibile. Noi vom selecta dbo. Pentru toate ferestrele vom
apasă OK, astfel încât se va salva modificarea asupra utilizatorului creat.

Pentru acordarea permisiunilor unui utilizator putem să folosim şi de această dată


comenzile SQL:

use <database-name>
grant <permission-name> on <object-name> to <username\principle>
Autentificarea cu un utilizator

Datorită faptului că avem un utilizator creat şi identificat cu o metoda de autentificare setată de


noi, putem să ne reconectăm la baza de date folosind noile detalii de conectare. Pentru a realiza
acest lucru, trebuie să schimbăm metoda de autentificare cu SQL Server Authentication, în
momentul în care ne reconectăm la baza de date.

Câmpurile de Login şi Password devin active şi le vom folosi pentru a introduce detaliile de
conectare.

Dacă datele introduse au fost corecte, vom putea să vedem serverul nostru conectat şi baza de
date disponibilă din nou, însă cu utilizatorul creat de noi.
Permisiuni pentru SERVER
Dacă primiţi o eroare atunci când încercaţi să va auten- tificaţi cu utilizator şi parola, este necesar să
modificăm proprietăţile serverului să per- mită acest tip de login.

Acest lucru se face prin CLICK DREAPTA pe numele serverului în Object Explorer şi click pe
Properties.

Apoi alegem din partea stângă Security şi ne asigurăm că am bifat a doua opţiune a Server
Authentication: SQL Server and Windows Authentication mode.
După ce am făcut asta, apăsăm OK, iar
pentru ca modificările să fie aplicate este
necesar să resetam serverul de SQL.

Scriem în bara de START Services.msc şi


dăm click pe rezultatul ce ne apare.

În fereastra Services căutăm serverul nostru SQL Server (versiune) în funcţie de


instalare, putem avea diferite versiuni. În exemplul meu este SQLEXPRESS, dar
putem identifica serverul prin verificarea statusului, deoarece va avea RUNNING.
Dăm click pe el, iar în partea stângă avem opţiunea de Restart.

Temă
Realizaţi fişiere SQL pentru crearea unei baze de date, care să se numească ilbah.
În acelaşi fişier, adăugaţi şi instrucţiunile pentru crearea unei autentificări şi a unui utilizator.
Salvaţi fişierul sub numele de DatabaseInitialSetUp.sql

S-ar putea să vă placă și