Hogyan auditáljuk a sysadmin joggal rendelkező felhasználókat?

Azt gondolnánk, hogy a sysadmin joggal rendelkező felhasználók nem csinálnak galibát, de legalábbis megbízhatóak. Ezeket tényként kezelném :) de azért vannak olyan esetek, amikor mégiscsak a körmükre kell nézni. Ilyen eset lehet, amikor egy előírás, törvény vagy egyéb szabvány megköveteli ezt, pl.: SOX, PCI DSS, HIPA. Na akkor, hogyan is lehet e... [More]

SQL Server átnevezése

Többször is előfordult már, hogy át kellett neveznem SQL Server alatt a gép nevét. Sajnos nem olyan egyszerű ez, mint amilyennek az tűnik, az SQL Server néhány extra lépést még megkövetel: Miután a gép átnevezésre került és újraindult, az alábbi parancsok segítségével az SQL Server-en is állítsuk át a gép nevét: USE [master] GO EXEC sp_dropserver '<régi név>' EXEC sp_addserver @server = '<új név>', @local= 'LOCAL'   Az instance újraindítása után a @@SERVERNAME már az... [More]

Ki törölte a táblát???

Hol volt, hol nem volt, volt egyszer egy SQL Server 2008 R2 ahol se DDL Trigger, se audit, se semmi sem volt beállítva és dbo joga volt a fejlesztőknek az éles környzetben. Történt egy nap – nevezetesen szerdán – hogy valaki törölt egy táblát. E miatt sajnos a program nem az elvárásoknak megfelelően működött. Szerencsére mentés volt, de meg szerettük volna tudni, hogy ki követte el a dolgot, illetve, hogy mikor is történt az egész. Az időpontra azért volt szükség, hogy a point-in-time restore re... [More]

Aktuális wait statisztika

Vannak olyan esetek, amikor kíváncsi vagyok a wait stat-ra. Ezt a sys.dm_os_wait_stats DMV-ből lehet kiszedni, igen ám, de ez az SQL Server legutóbbi indulása óta összegyűlt adatokat adja vissza. Ez azért lehet problémás, mert lehet nem is az összesre – indulástól eltelt idő alatt összesített, hanem az éppen akuális állapotra vagyok kíváncsi. Ezt két módon érhetem el: Kitörlöm a DMV-ből az adatokat és ezek után az új adatokat nézem meg (nem ajánlott): -- Clear Wait Stats DBCC SQLPERF('s... [More]

SQL Server elérése az internet felől

Alapvetően nem ajánlom az SQL Server-t direkt kitenni az internetre, de bátraké a szerencse :-). Ma valaki megkérdezte, ha mégis így tenne, mi az a minimum beállítás, amit ajánlok. az alábbi listában összefoglaltam: statikus port beállítása az SQL Server publikus IP címére az SSCM segítségével, soha ne használjuk az alapértelmezett 143... [More]

max server memory beállítás

Az elmúlt időszakban több SQL Server beállítását is meg kellett vizsgálnom. Általban a max server memory beállítás mindenhol az alapértelmezett, dinamikus értéken volt: akár a szerver összes memóriáját is elviheti az SQL Server, ami igen komoly "lassuláshoz" vezethet. Alapvetően a max servever memory beálításnál az alábbi para... [More]

xp_readerrorlog paraméterei

Mivel magyarul nem igazán találtam "dokumentációt" az xp_readerrorlog extended "tárolt eljárásról" - de utálom lefordítani :) - ezért arra gondoltam, hogy majd én dokumentálom :) Ezen az oldalon elérhető amit találtam: http://www.iamberke.com/page/xp_readerrorlog.aspx  

Megegyezik e a fizikai sorrend az index logikai sorrendjével?

Több tucat jelöltet interjúztattam MS SQL Server-es poziciókra és sajnos csak nagyon kevesen válaszoltak helyesen erre a kérdésemre: vajon egy clustered index-el ellátott táblában az adatok fizikai sorrendje ugyan az e mint az index logikai sorrendje?    Miért fontos ez? Hivatkoznék egy régebbi bejegyzésemre, ahol az volt a feladat, hogy az utolsó 10 sort kellett megjelen&i... [More]

Az utolsó 10 sor megjelenítése

Találtam véletlenül egy fórumot, ahol égbekiáltó hülyeséget fedeztem fel: a fórum itt érhető el. A lényeg: adott egy tábla és az utolsó 10 sorát kell visszaadni. ezzel még nem is lenne gond, de ORDER BY nélkül és nincs se timestamp se identity oszlop. Na akkor tisztázzunk valamit: az SQL Server nem garantálja az eredmény sorrendjét eg&e... [More]