📖 Zaštita Podataka po svaku cijenu
U današnjem svijetu, podaci su meta. Čak i ako se vaš server nađe u tuđim rukama, podaci unutar baze moraju ostati nečitljivi. SQL Server 2022 nudi više slojeva enkripcije koji se međusobno dopunjuju.
💾 Transparent Data Encryption (TDE)
TDE enkriptuje cijelu bazu podataka na disku (at-rest). Ako lopov ukrade fajl baze (.mdf),
ne može ga otvoriti bez privatnog ključa.
🔑 Ključna prednost TDE
Nema potrebe za promjenom koda aplikacije. Enkripcija/Dekripcija se dešava automatski prilikom čitanja sa diska u memoriju. Ipak, administrator baze (DBA) i dalje može vidjeti podatke dok su u RAM-u.
🔐 Always Encrypted (Vrhunac Sigurnosti)
Ovo je tehnologija koja rješava problem "Niko ne smije vidjeti podatke osim korisnika". Sa Always Encrypted, podaci se enkriptuju na klijentskoj strani prije slanja bazi.
- Enkripcija na klijentu: SQL Server dobija samo šifrat (chipertext).
- DBA ne vidi ništa: Čak i onaj sa najvišim privilegijama vidi samo "X%f9&2..." u koloni Plata.
- Enclaves (Novo u 2022): Omogućava operacije (poput pretrage ili poređenja) nad enkriptovanim podacima unutar sigurne zone u procesoru (VBS).
🕵️ SQL Server Audit
Želite znati tačno ko je pogledao tabelu plata u 3 ujutro? SQL Server Audit bilježi sve aktivnosti.
-- 1. Kreiranje Server Audita koji piše u fajl
CREATE SERVER AUDIT [MySecureAudit]
TO FILE ( FILEPATH = 'C:\AuditLogs\' );
GO
-- 2. Uključivanje audita
ALTER SERVER AUDIT [MySecureAudit] WITH (STATE = ON);
GO
-- 3. Kreiranje Database Audit Specifikacije za tabelu plata
CREATE DATABASE AUDIT SPECIFICATION [AuditSalaries]
FOR SERVER AUDIT [MySecureAudit]
ADD (SELECT, UPDATE ON Schema::HR BY [public])
WITH (STATE = ON);
⛓️ Ledger Tables: Blockchain u SQL-u
Novo u verziji 2022, Ledger pretvara SQL Server u nepromjenjivi (immutable) skladišni sistem. Bilo koja promjena u tabeli ostavlja kriptografski dokaz (hash) koji je nemoguće sakriti.
💼 Idealno za Audite
Niko, čak ni 'sa', ne može obrisati prošlost bez da sistem to primijeti. Savršeno za bankovne sisteme, logistiku i medicinske kartone.
🎯 Praktična Vježba: Enkripcija Kolone
Zadatak: Zaštita JMBG brojeva
Morate osigurati kolonu JMBG u tabeli Zaposlenici tako da podaci budu
uvijek enkriptovani, čak i dok "putuju" mrežom.
-- 1. Generisati Column Master Key (CMK) u Windows Cert Store-u.
-- 2. Generisati Column Encryption Key (CEK) zaštićen sa CMK.
-- 3. Izvršiti ALTER TABLE ... WITH (ENCRYPTED_VALUE = ...)
-- unutar ADO.NET aplikacije ili SSMS Wizard-a.
-- Napomena: Always Encrypted zahtijeva driver na klijentu za dekripciju!
✅ Zaključak Modula 5
Završili smo najkritičniji modul tutorijala. Vaša baza sada je:
- ✅ Otporna na Deadlock-e kroz pametno upravljanje transakcijama.
- ✅ Optimizovana kroz Query Store i IQP.
- ✅ Sigurna pomoću RLS-a i Dynamic Masking-a.
- ✅ Kriptografski zaštićena uz Always Encrypted i Ledger.
📚 Modul 6: Budućnost uz AI
U posljednjem modulu istražujemo AI-Assisted Development. Vidjećemo kako moderni AI alati pomažu u pisanju boljeg SQL koda i predviđanju anomalija u bazi.