1. Concepte importante in securitatea BD

 - Autentificarea: Se produce cel mai des prin intermediul login-ului si parolei de intrare in sistem;

 - Cifrarea: Procesul de codificare al informatiei

 - Autorizarea: Procesul care se aplica utilizatorilor autentificati, pentru a stabili drepturile la folosirea resurselor 

 - Urmarirea modificarilor: Urmarirea si documentarea actiunilor utilizatorilor

 

2. Modele de securitate

 - Principals: 

 - Securables: Resusrele, accesul la care se regleaza de sistema de autorizare in BD

 - Permissions: 

 

3. Autentificarea

- Sistema de securitate Database Engine este compusa din doua subsisteme:

    . Sistema de securitate Windows

    .Sistema de securitate SQL Server.

 - Pe baza acestor doua subsisteme componenta Database Engine poate lucra in unul din urmatoarele regimuri de autentificatie

    . Regim Windows (trusted connection)

    . Regim Mixt

 

4. Creare regim autentificare.

- Creare regim Windows: click-dreapta server BD -> Properties -> se deschide fereastra Server Properties -> Security -> Windows Authentication Mode;

- Creare regim Mixt: click-dreapta server BD -> Properties -> se deschide fereastra Server Properties -> Security -> Server and Windows Authentication Mode;

 

5. Cifrare (codificare date.

 . Algoritm important de codificare este RSA (Rivers, Shamir, Adelman).

 . Database Engine asigura securitatea BD prin erarhizarea nivelelor de codificare si infrastructura de manipulare cu chei. Fiecare nivel de securizeaza urmatorul nivel inferior prin combinatii de certificate, chei simetrice si asimetrice

 - Cheia principala controleaza cu restul cheilor si certificatelor. Ea se creaza automat la instalarea Database Engine. Este codificata cu ajutorul interfetei API de securitatea al datelor Windows (DPAPI - Data Protection API). Cheia principala este controlata de sistema. Administratorul de sistem poate efectua diferite operatiuni cu ea,dar se recomanda doar crearea copiei de rezerva a cheii principale.

 - Fiecare BD are o singura cheie principala care se creaza cu instructia CREATE MASTER KEY:

 - Cheia principale al BD se poate de folosit la crearea cheilor-utilizator, care sunt:

        . chei simetrice

        . chei asimetrice

        . Certificate

 

6. Chei simetrice.

 - In sistemul de codificare cu folosirea cheii simetrice, ambii participanti (expeditorul si destinatarii de mesaje) folosesc aceiasi cheie.

 - Pentru crearea cheii simetrice se foloseste instructiunea Transact-SQL: CREATE SYMMETRIC KEY.

 - Pentru stergere DROP SYMMETRIC KEY

 - Pentru a folosi o chei simetrica trebuie initial deschia: OPEN SYMMETRIC KEY.

 - Dupa deschidere cheie, pentru codificare trebuie folosita functia-sistem EncryptByKey. Aceasta functie are doi parametri de intrare: identificatorul cheii si textul care trebuie codificat.

 

7. Chei asimetrice.

 - Cheia asimetrica este de doua feluri

   .Private key

   .Public key

- Fiecare din ele poate decodifica datele, codificate cu alta cheie

 - Pentru creare cheie asimetrica: CREATE ASYMMETRIC KEY

 - Pentru modificare proprietati: ALTER ASYMMETRIC KEY

 - Pentru steergere DROP ASYMMETRIC KEY

- Dupa creare cheie, pentru codificare trebuie folosita functia-sistem EncryptByAsymKey. Aceasta functie are doi parametri de intrare: identificatorul cheii si textul care trebuie codificat.

- Pentru decodificare: DecryptByAsymKey

 

8. Certificate.

- Certificatul reprezinta lucrul cu semnatura digitala, care leaga valoarea unei chei cu persoana concreta / echipament etc., care are aceasta cheie.

 - Certificatele sunt date si semnate de centrul de certificare (Certification(CA)).

 - Entitatea care primeste un certificat se numeste subiect al acestui certificat.

 - Certificatele contin urm. informatie:

     . Valoarea cheii deschie al subiectului

     . Informatia subuiectului identificat

     . Iformatia creatorului de certificat identificat

     .Semnatura electronica al creatorului certificatului

 - Instructia importanta pentru certificate este: CREATE CERTIFICATE.

 

9. Redactare chei utilizator.

 - Pentru codificare cele mai importante sunt:

     .sys.symmetric_keys;

     .sys.asymmetric_keys;

     .sys.certificates;

     .sys.database_principals;

 - Primele trei reprezinta informatia despre toate cheile simetrice /asimetrice si despre toate certificatele.

 - sys.database_principals reprezinta informatia despre toti principals in BD

 

10. Administrare extinsa al cheilor SQL Server.

 - Urmatorul pas al nivelului de securitate mai inalt este Extensible Key Management(EKM) 

 - Scopuri EKM:

     .Marirea securitatii cheilor prin intermediul functiilor de codificare

     .Administrare comuna al cheilor

 - Permite inregistrarea echipamentelor terte in Database Engine

 

11. Metode de codificare al datelor.

 - SQL Server sustine doua metode:

    .Codificare la nivel de coloane (este complicat, trebuie modificari in aplicatie)

    .Codificare transparenta.(se face automat). Fisierele BD se codifica la nivel de pagini. Este bazata pe cheia de codificare. Se foloseste cheie simetrica.

- Codificarea transparenta se face in patru etape:

    1. Cu instructiunea CREATE MASTER KEY (se creaza cheia principala)

    2.Cu instructiunea CREATE CERTIFICATE (se creaza certificat)

   3.Cu instructiunea CREATE DATABASE ENCRYPTION KEY (se creaza cheia de codificare)

   4. Se efectuiaza configurarea BD

 

12. Setare securitate componentei Database Engine.

 - Se poate efectua prin metodele:

    .Prin intermediul Management Studio

 .Prin intermediul instructiunilor Transact-SQL

 

13. Administrare  securitate cu ajutorul Management Studio.

 - Pentru a crea un nume de inregistrare nou, in panoul Object Explorer extindem mapa serverului -> extindem Secutity -> click-dreapta pe Logins->New Login.

 - In primul rind trebuie de setat regimul de autentificare (Windows sau SQL Server)

 - Daca sa ales Windows authentication la cimpul Login name trebuie de indicat un nume valid in forma domain/user_name.

 - Daca sa ales SQL Server authentication este necesar de introdus un nume de inregistrare nou si parola. Optional se indica BD by default la care utilizatorul se conecteaza automat dupa intrarea in Database Engine.

 

14. Administrare  securitate cu ajutorul Transact-SQL.

 - Se folosesc trei instructiuni

     .CREATE LOGIN (creaza un nou nume de inregistrare)

     .ALTER LOGIN (modifica proprietatile unui nume de inregistrare)

     .DROP LOGIN (sterge un nume de inregistrare)

 

15. Schemele.

 - Se folosesc in modelul de securitate Database Engine pentru a simplifica interactiune intre utilizatori si obiecte.

 

16. Separare utilizatori si scheme.

 - Schema este o colectie de obiecte al BD, care are un singur proprietar si formeaza un singur spatiu de nume.

 - Database Engine sustine scheme denumite cu folosirea notiunii de "principal"

 - Principal poate fi:

     .principal individual (reprezinta un singur utilizator)

    .principal de grup(mai multi utilizatori)

 - Separarea utilizatorilor BD  de scheme ofera prioritatile:

     . Un principal poate avea mai multe scheme

     .Citiva principali individuali pot sa aiba o singura schema

     .Stergerea utilizatorului BD nu necesita redenumirea obiectelor, care se afla in schema

 

17. Instructiunile DDL pentru lucrul cu schemele.

 - CREATE SCHEMA

 - ALTER SCHEMA

 - DROP SCHEMA

 

18. Instructiunea CREATE SCHEMA.

 - Este necesar sa fie utilizaotri ai BD

 - Cu ajutorul instructiunii CREATEA SCHEMA se poate de creat schema, de format continutul tabelelor, cit si prezenta / interzice sau sterge permisiunile la obiectul securizat

 - Sunt 3 zone ale obiectelor securizate: serverul, BD si schema, care contin la rindul lor alte obiecte securiazte(nume de inregistrare, utilizatori ai BD, tabelele, procedurile)

 - CREATE SCHEMA este atomara.

 

19. Instructiunea ALTER SCHEMA.

 - ALTER SCHEMA muta obiectele intre diferite scheme ale unei BD

 - Sintaxa:  ALTER SCHEMA schema_name TRANSFER object_name

 

20. Instructiunea DROP SCHEMA.

 - Se foloseste pentru stergerea unei scheme.

 - Schema se poate sterge doar daca nu contine obiecte

 

21. Securitatea bazelor de date.

 - Utilizatorul trebuie sa aiba cont de inregistrare pentru fiecare BD

 - Cont de inregistrare al utilizatorului BD se poate suprapune cu contul Windows, nume de inregistrare sau rol.

 - Admiistrarea securitatii BD se face cu ajutorul

     . Management Stuid

     . Transact-SQL 

 

22. Administrare securitate BD cu Management Studio.

 - Pentru a adauga utilizatori: extindem mapa "Databases" ->extindem mapa user_DB(ex. Test) -> extindem Security -> click-dreapta Users ->New User -> in fereastra Database User - New ->introducem numele utilizatorului User name -> alegem numele de inregistrare Login name-> optional se poate alege schema.

 

23. Administrare securitate BD cu Transact-SQL.

 - Pentru adaugare -> CREATE USER

 - Modificare -> ALTER USER

 - Stergere -> DROP USER

 

24. Schema BD by default.

 - Fiecare BD are urmatoarele scheme by default

  . guest

  . dbo

  .INFORMATION_SCHEMA

  .sys

- Database Engine permite utilizatorilor,care nu au cont de utilizator sa lucreze cu BD folosind schema guest

 - Fiecare obiect al BD apartine doar unei scheme, care este schema by default pentru acest obiect.

 - Daca la creare obiect nu i se indica o schema, acest obiect apartine schemei dbo

 - sys contine obiectele de sistem.

 

25. Rolurile.

 - Cind mai multor utilizatori le este necesar sa intreprinda actiuni asemanatoare in BD si nu sunt membri gtupei Windows corespunzatoare, se poate de folosit rolurile BD , date unei grupe de utilizatori ai BD, si care au acces la unele si aceleasi obiecte.

 - Membrii rolurilor BD pot fi

      .Grupele si conturile de inregistrare Windows

      .Numele de inregistrare pentru intrare in SQL Server

      .Alte roluri

 - Database Engine contine citeva roluri de 'sistem', care au permisiuni speciale

 - Sunt si roluri predeterminate:

     . Roluri server fixate

     . Roluri BD fixate

 - De asemenea mai sunt si roluri

   . roluri apicatie

   .roluri server determinate de utilizatori

   .roluri BD determinate de utilizatori

 

26. Rolurile server fixate.

 - Se determine la nivel de server si nu se afla in BD

Rolurile-Server fixate

sysadmin executa orice actiune in sistemul BD
serveradmin Configureaza parametrii serverului
setupadmin administreaza procedurile
securityadmin administreaza numele de inregistrare si permisiunile pentru instructiunea CREATE DATABE
processadmin administreaza procesele de sistem
dbcreator creaza si modifica BD
diskadmin administreaza fisierele pe disc

 

 

 

27. Administrarea rolurilor server fixate.

 - Membrii rolurilor-server fixate se pot adauga si sterge prin:

   . Managemen Studio

   . Transact-SQL

 - Pentru a adauga nume de inregistrare in membrii rolurilor-server fixate: extindem serverul -> Security -> Server Roles -> click-dreapta pe rolul in care trebuie de adaugat nume de inregistrare -> in meniu alegem Properties ->se deschide fereastra Server Role Properties - sysadmin - > Add -> Browse pentru a alege numele de inregistrare.

- Pentru a administra cu Transact-SQL folosim instructiunile

     .CREATE SERVER ROLE

     .DROP SERVER ROLE

     .ALTER SERVER ROLE

 

28. Numele de inregistrare  sa

- Este numele de inregistrare al administratorului de sistem

 - Este inclusa in SQL Server 2012 cu scop de compatibilate cu cu sistemele mai vechi.

 - Se foloseste doar atunci cind nu este alta metoda de a intra in sistemul BD

 

29.

Rolurile fixate ale BD

- Se determina la nivel de BD si sunt in fiecare BD

Rolurile fixate ale BD

db_owner

utilizatorii care pot efectua aproape toate operatiile in BD 

db_accessadmin

utilizatorii care pot adauga /sterge utilizatori

db_datareader

utilizatorii care pot vizualiza datele dei toate tabelele

db_datawriter

utilizatorii care pot adaua/sterge/modifica datele in tabele

db_ddladmin

utilizatorii care pot executa instructiuni DDL

db_securityadmin

utilizatorii care pot administra toate actiunile ce tin de securitate

db_backupoperator

utilizatorii care pot crea copii de rezerva ale BD

db_denydatareader

utilizatorii care nu au  acces  la vizualizare date

db_denydatawriter

utilizatorii care nu pot efectua modificari in BD

 

 

 

30. Rolul fixat public

- Este un rol special, membrii caruia sunt toti utilizatorii legali ai BD

 - Curpinde toate permisiunile 

 - Nu poate fi sters

 - By default rolul public permite urmatoarele actiuni

          > vizualiza tabele de sistem si vizualizarea informatiei din BD master,

          > executa instructiuni pentru care nu este nevoie de permisiune,Ex.: PRINT.

31.Atribuirea de rol fixat utilizatorilor

 - extindem 'sereverul' -> extindem Databases->BD_necesara->Security->Roles->Database Roles -> clic-dreapta pe rolul necesar -> Properties -> in fereastra aparuta tastam Add-> alegem utlizatorul caruia sai atribuim acest rol.

 

32. Rolurile aplicatiei

 - Permit asigurarea securitatii pentru o aplicatie anume

 - Permit aplicatiei sa execute autorizarea (in loc sa faca asta sistemul BD)

 - Nu au membri

 - Pentru activare trebuie parola

 

33Administrarea rolului aplicatiei in Management Studio

 - Pentru a crea un rol aplicatie: extindem "serverul"-> extindem Database -> baza_mea->Security ->click-dreapta pe mapa Roles->New->New Application Role-> in fereastra Application Role - New introducem numele noului rol aplicatie, parola si optional schema. -> OK.

 

34. Administrarea rolului aplicatiei in Transact-SQL

 - CREATE APPLICATION ROLE (creaza)

 - ALTER APPLICATION ROLE (modifica)

 - DROP APPLICATION ROLE (sterge)

 

35. Activare a rolului aplicatiei 

 - La conectare trebuie de executat instructiunea de sistem:     sp_setupprole

 - La activare rol cu ajutorul procedurii  sp_setupprole trebuie de avut in vedere

> Rolul activat nu se poate dezactiva in BD curenta, pina cind nu se deconecteaza de la sistema

> Rolul aplicatiei este intotdeauna legat de BD, domeniul de vizibilitate este BD curenta

 

36. Roluri server determinta de utilizator

 - CREATE SERVER ROLE 

 - DROP SERVER ROLE

 - ALTER SERVER ROLE

 

37. Roluri BD determinta de utilizator

 - CREATE  ROLE 

 - DROP  ROLE

 - ALTER  ROLE

 

38. Administrare roluri BD determinta de utilizator prin intermediul Management Studio

 - extindem 'Databases' -> BD_necesara -> Security -> click-dreapta pe Roles -> New ->New Database Role -> in fereastra Database Role - New ->introducem numele noului rol -> Add pentru a adauga membri in noul rol-> OK.

 

39. Administrare roluri BD determinta de utilizator prin Transact-SQL

 - CREATE  ROLE  sintaxa: CREATE ROLE role_name [AUTHORIZATION owner_name]

 - ALTER ROLE -> modificare nume

 - DROP ROLE -> stergere(trebuie de schimbat detinatorul obiectelor care nu se pot sterge)

 

40. Autorizatia

 - GRANT;

 - DENY;

 - REVOKE;

 

41. Instructiunea GRANT

 - ofera permisiunea principalului la obiectele securizate

Permisiunea si obiectele corespunzatoare
SELECT tabelele cu coloanele,sinonimele,valorile returnate citeste rindurile
INSERT tabelele cu colaonele,sinonimele introduce coloane
UPDATE tabelele cu colaonele,sinonimele modificare coloana
DELETE tebelele cu colaonele,sinonimele sterge coloana
REFERENCES tebelele cu colaonele,sinonimele adresare la tabele,cind nu este permisiune SELECT
EXECUTE proceduri utilizatori executate proceduri create de utilizatori
CONTROL proceduri utilizatori practic are toate permisiunile
ALTER proceduri utilizatori modifica proprietatile
TAKE OWNERSHIP proceduri utilizatori devine detinator al obiectului pe care il prelucreaza
VIEW DEFINITION proceduri utilizatori vizualizare metadate

CREATE

(securitate)

  creare obiecte securizate ale serverului

CREATE

(DB securable)

  creare obj. securizat al BD

 

 

42. Instructiunea DENY

 - Interzice executarea unei instructiuni pentru obiectele indicate

 - IN afara de parametrii instructiunii GRANT mai contine instr. CASCADE

 

 

43. Instructiunea REVOKE

 - Sterge permisiunile date/interzise anterior create

 - Parametru nou: GRANT OPTION FOR

 

44. Administrarea permisiunilor cu Manegement Studio

 - extindem 'serverul' -> extindem 'Databases'->click-dreapta pe BD_necesara -> Properties -> in fereastra Database Permision - sanple->Permissions -> Search pentru a alege utilizatorul->Browse -> in fereastra Browse for Objects alegem utilizatorul si rolul -> OK.

  - Utilizatorii alesi vor fi prezentati in fereastra proprietatilor BD in cimpul Users or roles.

 - Pentru utilizatorii acum se poate de permis sau interzis actiuni determinate

 - Pentru permisiune se punefanionul GRANT

 - Pentru interzicere - DENY.

 - Fanionul la With Grant, inseamna ca detinatorul permisiunii poate acorad si altor utilizatori permisiuni.

 - Pentru tabele ,individual, -> proprietatile tabelului -> User or Roles

 

45. Administrarea autorizatiei si autentificarii pentru BD autonome

 - Utilizatorii BD autonome nu sunt legati de nume de inregistrare

 

46. Urmarire modificari

 - Se face prin doua metode

  <> folsind trighere

  <> folosind sistema de urmarie (se creaza un jurnal in care se indica ce schimbari au fost)

 - Se creaza schema cdc. utilizatorul cdc, si alte obj.

 

47. Securitatea datelor si al reprezentarilor

 - reprezentarile se folosesc pentru:

   <> limitarea folosirii unor coloane/rinduri din tabele

   <> acunderea detaliilor cererilor complicate 

   <> limitarea diapazonului valorilor introduse