8
Audit Change Data Capture Change Tracking Праћење промена унутар SQL Server-a Марко Радоњић ИИБ

Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

  • Upload
    others

  • View
    52

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Audit

Change Data Capture

Change Tracking

Праћење промена унутар SQL Server-a

Марко Радоњић ИИБ

Page 2: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Функционалност доступна од SQL Server 2008(Enterprise Edition)

Заснована је на Extended Events архитектури(All Editions)

Праћење промена унутар SQL Server-a

Audit

Остале методе за надгледање:• Login Audit• C2 Audit• SQL Profiler (Audit Events Class)• SQL Trace• Common Criteria Compliance

Користи се за надгледање активности на нивоу SQL Server инстанце

Server Audit (догађаји на нивоу сервера) Database Audit (догађаји на нивоу базе)

Page 3: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Праћење промена унутар SQL Server-a

Audit

Server / Database Audit Specification

Представља скуп „акција“ које желимо да пратимо над одређеним објектима

• DBCC_GROUP• FAILED_LOGIN_GROUP• BACKUP_RESTORE_GROUP• DELETE• UPDATE

Audit (target)

• File• Security Log• Application Log

Представља објекат у коју се уписују логови везани за надгледане активности

Page 4: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Change Tracking & Change Data Capture

Праћење промена унутар SQL Server-a

Праћење промена над подацима односно добијање сета промењених података пре верзије SQL Server 2008 је подразумевало развијање комплексне инфраструктуре (измене базе и/или апликације)

Неке од области примене:• ЕТL(Extract Transfrom Load) Процеси• Складиште Података(Data Warehouse)• Синхронизација са уређајима без

сталне конекције(Pocket PC)• Архивирање вредности података пре

промене

Change Data Capture(CDC) и Change Tracking Функционалности доступне од верзије SQL Server 2008 које омогућују праћење промена над подацима и механизме за издвајање оних података који су промењени неком од DML(Data Manipulation Language) операција.

Page 5: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Праћење промена унутар SQL Server-a

Change Tracking Change Data Capture(CDC)

Express, Workgroup, Web, Standard, Enterprise, Data Center Enterprise and Data Center

Само детектује да се промена на одређеном реду десила. Не садржи вредност промена

Садржи вредност промена

Не садржи податке о претходним вредностима реда. Садржи податке о претходним вредностима реда

Не ослања са на SQL Server Аgent SQL Server Agent је неопходан за CDC

Може се радити Truncate команда над CT табелом Не може се радити Truncate команда над CDC табелом

Користи TempDB Користи Transaction log (.ldf file)

Табела мора да има примарни кључ Нема рестрикција као CT

Change Tracking & Change Data Capture

Page 6: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Change Data Capture

Праћење промена унутар SQL Server-a

Change Data Capture(CDC)CDC се заснива на читању и бележењу промена на основу трансакционог лога базе (.LDF) односно на основу LSN(Log Sequence Number) бројева.

Приликом конфигурисања CDC креирају се системске табеле, schema CDC као и SQL Аgent JobСелекција промењених података се врши помоћу функција:

SELECT * FROM cdc.fn_cdc_get_net_changes_[schema]_[TableName](from LSN,To LSN,Row Filter)

SELECT * FROM cdc.fn_cdc_get_аll_changes_[schema]_[TableName](from LSN,To LSN,Row Filter)

За манипулацију LSN бројевима користе се следеће функције:

sys.fn_cdc_get_max_lsn()sys.fn_cdc_map_time_to_lsn()sys.fn_cdc_map_lsn_to_time()sys.fn_cdc_increment_lsn()sys.fn_cdc_decrement_lsn()

Page 7: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

Change Tracking

Праћење промена унутар SQL Server-a

Change TrackingChange Tracking бележи вредност примарног кључа реда који је промењен као и тип DML операције.

ALTER DATABASE [Database] SET CHANGE_TRACKING = ON

ALTER TABLE [dbo].[Table] ENABLE CHANGE_TRACKING

Change Tracking се конфигурише помоћу DDL Alter команде

SELECT * FROM CHANGETABLE(CHANGES [TABLE], 0)

SELECT CHANGE_TRACKING_CURRENT_VERSION()

За селекцију промењених редова користи се табеларна функција CHANGETABLE()

Page 8: Audit Change Data Capture Change Trackingerpsusreti.rs/2013/prezentacije/P009.pdf · Change Data Capture Праћење промена унутар SQL Server-a Change Data Capture(CDC)

T-SQL

Праћење промена унутар SQL Server-a

T-SQL komande dostupne od verzije 2005

INTERSECTEXCEPT

SELECT * FROM dbo.Tabela1

SELECT * FROM dbo.Tabela2

ХВАЛА НА ПАЖЊИ