Documente Academic
Documente Profesional
Documente Cultură
Lecția 8
Protejarea datelor cu criptare și auditare
Securitate la nivel de server și la nivel de bază de
date
BAZE DE DATE
Protejarea datelor cu criptare și auditare
• Autentificarea conexiunilor
• Logins
• Rolurile fixe de server și de baze de date
• Permisiuni la nivel de server
• Autorizarea autentificărilor pentru a se conecta la baze de date
• Crearea rolurilor definite de utilizator
• Autorizarea accesului utilizatorului la obiecte
• Autorizarea utilizatorilor să execute cod
• Configurarea permisiunilor la nivel de schemă
Baze de date
Auditare (Audit)
• Auditarea unei instanțe a motorului de bază de date SQL Server sau a unei baze de date individuale implică urmărirea și
înregistrarea evenimentelor care apar pe motorul bazei de date
• Un audit este combinația mai multor elemente într-un singur pachet pentru un anumit grup de acțiuni pe server sau
acțiuni pe o bază de date
Baze de date
Auditare (Audit)
• Auditul SQL Server poate fi împărțit în mai multe tehnici:
SQL Server Audit
Extended Events
Triggers
Transaction logs
Temporal Tables
SQL Server Profiler & Trace
Change tracking
Change data capture
Baze de date
Windows
• Modul de autentificare implicit (default) atunci când instalați o instanță SQL Server
• Necesită ca utilizatorul să se autentifice mai întâi la Windows cu datele de conectare
• Autentificarea Windows este strâns cuplată cu Securitatea Windows și este cunoscută și ca securitate integrată (Integrated
Security)
SQL Server
• Autentificarea SQL nu este la fel de securizată ca și autentificarea Windows
• Pentru ca un utilizator să poată să se conecteze la SQL Server folosind autentificarea SQL, trebuie să furnizeze un user și o
parolă; aceste date sunt stocate în baza de date master și astfel este mai ușor de piratat
• Se recomandă să configurați instanța SQL Server pentru a accepta acest mod de autentificare numai dacă aveți o cerință de
a accepta utilizatori sau aplicații care nu se pot conecta la Windows
Baze de date
SQL login
• Oferă acces la SQL Server pentru un singur utilizator
• Parola pentru autentificarea SQL este stocată în baza de date master
Database users
• Un user nu este același lucru cu un login
• O logare oferă unui utilizator sau unei aplicații capacitatea de a se conecta la o instanță SQL Server, în timp ce un user
oferă drepturi de conectare pentru a accesa o bază de date
• Această asociere între un login și un database user este cunoscută sub numele de mapare a utilizatorului (user mapping)
Baze de date
sysadmin (administrator de sistem)
- poate efectua orice activitate pe server
- acest rol ocolește complet toate verificările de securitate
- acesta este cel mai puternic rol din SQL Server
securityadmin
- gestionează conectările (logins) și proprietățiile acestora
- poate folosi comenzi GRANT, DENY și REVOKE la nivel de server și de bază de date
- în plus, poate reseta parolele pentru autentificarea SQL Server
diskadmin - este utilizat pentru gestionarea fișierelor de disc
public
- fiecare autentificare SQL Server aparține rolului de server public
- public este implementat diferit de alte roluri, iar permisiunile pot fi acordate, refuzate sau revocate de la utilizatorii care au
acest rol
Baze de date
db_owner - pot efectua toate activitățile de configurare și întreținere pe baza de date și pot, de asemenea, să șteargă baza de
date în SQL Server
db_securityadmin - pot modifica apartenența la rol numai pentru roluri personalizate și pot gestiona permisiunile
db_accessadmin - pot adăuga sau elimina accesul la baza de date pentru autentificări Windows, grupuri Windows și
autentificări SQL Server
db_ddladmin - pot rula orice comandă Data Definition Language (DDL) dintr-o bază de date
Baze de date
Baze de date
Criptare (Encryption)
• Criptarea este procesul de ascundere a datelor prin utilizarea unei chei sau a unei parole
• Acest lucru poate face ca datele să fie inutile fără cheia sau parola de decriptare corespunzătoare
• Criptarea nu rezolvă problemele de control al accesului; cu toate acestea, îmbunătățește securitatea prin limitarea pierderii
de date chiar dacă controalele de acces sunt ocolite
• Mecanisme de criptare
Funcții Transact-SQL
Asymmetric keys (Chei asimetrice)
Symmetric keys (Chei simetrice)
Certificates
Transparent Data Encryption
Baze de date
Criptare (Encryption)
Baze de date
Criptare (Encryption)
Baze de date
Baze de date
Baze de date
Criptare (Encryption)
Certificates
• Un certificat este un obiect de securitate semnat digital care conține o cheie publică (și opțional o cheie privată) pentru SQL
Server
• Certificatele pot fi folosite pentru a ajuta la securizarea conexiunilor, în oglindirea bazei de date, pentru a semna pachete și
alte obiecte sau pentru a cripta date sau conexiuni
Baze de date
Temă
• Creați 2 logins cu autentificare SQL iar apoi creați un users pe care să îi mapați la logins
• Adaugați un login la un rol fix de server și un user la un rol fix de bază de date
• Încercați diferite comenzi de GRANT, DENY și REVOKE pentru permisiuni
• Creați 2 roluri definite de utilizator (server și bază de date) și adăugați permisiuni acestor roluri
• Apoi adăugați membrii la ambele roluri
Baze de date
Extra reading
Audits
https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=s
ql-server-2017
Autentificare
https://docs.microsoft.com/en-us/sql/relational-databases/security/choose-an-authentication-mode?view=sql-server-ver15
Database user
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-serve
r-ver15#:~:text=A%20user%20is%20a%20database,does%20not%20have%20a%20login
.
Logins
https://docs.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-login?view=sql-server-ver15
Baze de date
Extra reading
Server roles & database roles
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/server-level-roles?view=sql-server-ver
15
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-
ver15
https://www.techonthenet.com/sql_server/users/index.php
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-serve
r-ver15#:~:text=A%20user%20is%20a%20database,does%20not%20have%20a%20login
.
Encryption
https://www.youtube.com/watch?v=sIwd09jEO3Y
SQL Profiler
https://www.youtube.com/watch?v=5fLsrRAtTJA