Az SQLCMD

Az SQL 2005 egyik legpompásabb találmánya számomra kliensoldalon az SQLCMD vagy sqlcmd, attól függ, hol nézzük. Mostanában nagyon sok olyan munkát végzek, amit próbálok automatizálni, de még így is nagyon sok marad belőle (ezért nem írok blogot, mert gyakorlatilag másfél műszakban dolgozom). Ennek kapcsán kezdtem el jobban használni, kihasználni a sqlcmd lehetőségeit.

Sok Windows-on szocializálódott ember idegenkedik a karakteres képernyőtől, mert nehézkes meg nem lehet kattogtatni benne. Én meg szeretem, mert könnyebb félrekattintani, mint elgépelni (aki nem hiszi, az gondolja végig, hogy dobott-e már be egy foldert egy másikba tervei ellenére grafikus felületen, csak mert megcsúszott az egér). De kezdjük a hibrid oldalon: a Management Studio tud olyat, hogy a query window-t SQLCMD módban futtatja.


Continue reading ‘Az SQLCMD’ »

Gyorsan jogot az összes tárolt eljárásra

Éppen építem a félautomata SQL Servert (mint már párszor említettem), és ennek egyik állomása az, hogy a szakmailag kevéssé felkészült, ámde elszánt fejlesztők ellen, akik hibernate-ben mindent összedobálnak, elveszem az alkalmazások dbo jogát, és helyette csak írni-olvasni tudnak majd. Ez jó ötlet, hiszen ott van a beépített db_datareader és db_datawriter role minden adatbázisban, de…

A problémát a tárolt eljárások és függvények okozzák, amelyekhez külön-külön kell jogot grantolni. Ezt persze lehet scriptből is, de azért elég jó esély van arra, hogy ezt el fogom izélni valamikor, és nem lesz joga az alkalmazás usernek vmit csinálni, mire azt mondják, hogy azonnal adjam vissza a dbo jogot. Ennek a problémának a kivédésén agyaltam, és már-már kezdtem hajlani a DDL triggerek felé (minden SP gyártás után automatikusan adjuk rá jogot a megfelelő usernek), amikor egy számomra sokkal szimpatikusabb ötletbe botlottam.
Continue reading ‘Gyorsan jogot az összes tárolt eljárásra’ »

A model adatbázis és a CREATE DATABASE

Pár hónapja nekiálltam félautomata adatbáziskészítő scriptet írni, és ennek során csodálatos felfeldezést tettem a model adatbázissal kapcsolatosan. Az ugye ismert tény, hogy a model adatbázis az újonnan létrehozott adatbázisok modellje, hogy öndefiniáljak egy kicsit. Tehát a model fájljai másolódnak le, illetve az ő beállításai öröklődnek az új adatbázisra. Méret, recovery model, növekedés, stb.

Akkor itt most megállnék egy pillanatra. A fentiek igazak, ha az ember SSMS-ből hozza létre az új adatbázist. T-SQL, azaz CREATE DATABASE használata esetén jön a meglepetés: az új adatbázis nem a modelnél megadott növekedési opciókat fogja használni, hanem előre beállított standardokat: az adatfájl 1 MB-tal fog nőni, a log pedig 10%-kal. Erre majdnem elkezdtem kiabálni, hogy ez egy bug, de – tapasztalataimból kiindulva – átolvastam a Books Online-t. És igazam volt, ez egy precízen dokumentált meglepetés:

If FILEGROWTH is not specified, the default value is 1 MB for data files and 10% for log files, and the minimum value is 64 KB.

Szóval ha Transact-SQL-lel hoztok létre adatbázist, figyeljetek a növekedésre. Egyéb meglepetést nem tapasztaltam. Eddig.

Automatizálj!

Épp most jövök egy sörözésből, ahol találkoztam volt kollégáimmal, illetve utódaimmal (hú de furcsán hangzik ez…:)), és hát kocka informatikusok soha nem tudnak kikapcsolni, beszéltek munkáról is egy kicsit (kevesebb, mint 75 százalékában az időnek). Nagyjából még ismerősek voltak a dolgok, de már rég nem abban a világban élek, úgyhogy csak felületesen figyeltem. Egyszercsak megütötte a fülemet egy félmondat: …majd futtatok egy domyjobot… Erre felkaptam a fejem. A domyjob még létezik? Mi az hogy létezik, már egészen felfejlesztették. Ők meg visszanéztek: te is azt használtad? Á, mondom, dagadó keblekkel, én írtam! És tényleg nagyon büszke lettem magamra, meg arra, hogy még használják azt az izét.
Az izé, azaz a domyjob.cmd (ami itt-ott VBScriptet is hívogatott, ha úgy kívánta érdeke) a régi kezdetleges változatában körülbelül 3 órára csökkentette a 10 órás release időt egy közepesen bonyoloult környezetben, ahol a gépeket több nagyjából homogén csoportra lehetett osztani , és mivel félautomata volt, a hibalehetőségeket drámaian lecsökkentette. Gyakorlatilag a kézzel való félrekonfigurálás helyett a fő hibám az lett, hogy valamelyik gépen nem futtattam le. Continue reading ‘Automatizálj!’ »

PowerShell könyv mindenkinek (aki tud angolul)


Mivel világéletemben süti voltam a programozáshoz (akkor is, amikor azt csináltam), most elhatároztam, hogy megtanulok Powershellül, ami azért jó, mert egyrészt alapvetően dotnet, másrészt scriptnyelv, ami üzemeltetésben aranyat ér, hiszen látom a forrását, bármikor beletúrhatok, illetve újrahasznosíthatom, ha kell. Meg szeretnék végre megtanulni valamit az SQL-en kívül (bár még ez is tele van meglepetésekkel).
Tanfolyamra nem akartam menni, mert jobban szeretek könyvből tanulni (azon kevés emberek egyike vagyok, aki kérte a cégét, hogy ne kelljen tanfolyamra mennie, vetettem inkább 18 könyvet:), úgyhogy nekiálltam könyvet keresni. Némi piackutatás után (külön köszönet az amazon.com szorgos vásárlóinak, akik review-t is írnak) végül Bruce Payette könyvét választottam, melynek címe: Windows PowerShell In Action. Két dolog győzött meg: egyrészt a könyv tartalomjegyzéke – Bruce Ádámnál és Évánál, vagyis a PowerShell előtti idők történetétől kezdi, és végigmegy minden érdekes területen, tehát az, h süti vagyok jelenleg, nem okoz hátrányt. Másrészt Bruce a PowerShell egyik alkotója, és mint ilyen, elég sok apró finomságot tud a nyelvről, és ezt meg is osztja az olvasókkal.
Jelenleg a könyv negyedénél járok (sajnos közben egy time management könyvet is le kell olvasnom, mert abban béna vagyok), de már érzem, ahogy kezdenek erőtől duzzadni a PowerShell-izmaim. Egyelőre kicsit félelmetes, hogy fejből leírom azt, hogy gal|? {$_.Definition -like ‘*proc*’}, és még értem is. Tegnap be is röffentettem első élesüzemű PowerShell scriptemet – apró üröm az örömben, hogy csak én tudom debuggolni jelenleg :)
Szóval a könyv nagyon jó, ha valaki akar PowerShellt tanulni, csak ajánlani tudom, két záró gondolattal: Először is, a könyv borítóján szereplő idézet teljesen igaz:

“Bruce is a walking encyclopedia of every good, bad, solid, and wacky language idea that has been tried… This is a book that only Bruce could have written.”
—Jeffrey Snover, from the Foreword

Másodszor pedig ez a könyv olyan, mint a Books Online: csak ezért érdemes megtanulni angolul.