
Jag lärde mig just en grej om avinstallation...
Jag skulle ta vara på en gammal burk på jobbet, och därför skulle jag rensa den från allting som hade med företaget att göra. Eftersom det var en som jag inte hade använt, och jag ville ha kvar XP på den, så loggade jag in på nätverket…(den släpper inte in mig om jag inte loggar in)
Där kommer liksom katastrofen;
Jag avinstallerar programmet som man använder för att köra vårt affärssystem, det är bara ett enkelt program som kopplar till en databashanterare, som i sin tur sköter en databas. Jag använder Windows avinstallationsrutin i kontrollpanelen, och jag är inte inloggad i affärssystemet.
Avinstallationen för programmet (Pyramid) tar lugnt och stilla med sig hela databasen från servern i graven utan att säga ett knyst.
Det var pedagogiskt; jag hade glömt dra ur nätverkskabeln när jag avinstallerade…
Men jag kan för mitt liv inte förstå varför en programmerare på Pyramid har lagt in en rutin som vid avinstallationen av programmet tar med sig hela databasen ifrån en annan dator än den där jag sitter. Jag förstår inte varför avinstallationen av programmet överhuvudtaget ska röra databasen; min idé om en affärsdatabas är att man måste vara inloggad och ha behörighet för att kunna ändra i den. -- Tydligen inte för att radera den…
Jag hade för mig att affärskritiska system borde ha lite större kontroll än så över databasen. Man ska inte kunna eliminera hela databasen genom lokal avinstallation av ett program i en dator; dessutom av en användare som inte är användare i databasen.
Så jag lärde mig något. Det var pedagogiskt…
Det finns en backupp från i måndags.
Det märkliga är att jag kom på att dra ur nätverkskabeln för resten av joxet som skulle bort, och jag kan knappast beskylla Windows för fadäsen; det är helt och hållet den programmerare som har lagt in en rutin för att ta bort alla datafiler som har skapats (och används av tiotals andra användare som har programmet kvar) när man avinstallerar programmet i en dator. Andra program brukar fråga om sånt när man avinstallerar…
Konstigt…
Jag har installerat och avinstallerat många pyramid utan att någon gång råkat ut för det du råkat ut för. Det låter inte som att installationen på den datorn du avinstallerade ifrån har blivit installerad rätt från första början. Det är inte så att det var den som var pyramidservern från början och som sedan blivit en klient när en ny server installerats?
Om fallet är som du säger så är det personen som gjort klientinstallationen på den datorn som gjort fel.

Den datorn fanns inte i systemet när Pyramid installerades, den är inköpt senare. Jag trodde att det helt enkelt var bara en klient som installerades av; jag har aldrig någonsin tidigare varit med om att en klient har tagit med sig databasen eller datafiler vid avinstallation, oavsett vilken typ av klient.
Databasen låg i servern, jag var inte inloggad i Pyramid och är inte ens användare där. Hela databasen har försvunnit, och bara två var inloggade i servern när det hände, jag och en till; jag var den enda som sysslade med att ta bort program. Jag tog bort en massa saker utöver det, som antivirus och löneprogram och annat som hörde till företaget. Pervasive lät jag ligga kvar, eftersom det inte är specifikt för just det programmet, men används för att köra databasen. Eftersom Windows avinstallation inte har lämnat någon logg på allt som har tagits bort är det naturligtvis bara en gissning att det är min avinstallation som tog bort databasen, men det sammanfaller exakt i tid; precis då jag tog bort programmet så försvann databasen ur servern.
Det är trots allt en ganska lätt dag som har gått förlorad, det kan man ju trösta sig med, vi kan bara återställa från den senaste backuppen som gjordes efter måndagen.
Och jag tog alltså bara bort klienter via Windows "lägg till / ta bort program" i kontrollpanelen. Jag kunde inte föreställa mig att det skulle beröra basen. Men nu har jag lärt mig att det är en vettig rutin att dra ur nätverkskabeln när man gör såna saker…

Tack för den varningen!
Ska absolut dra ur nätverkskabeln nästa gång jag rensar en PC.
(Jag som inte ens är "PC-nisse" - bara hjälper till ibland.)

När man jobbar med applikationer som har en databas i botten brukar jag alltid skapa ett eget databaskonto (tjänstekonto) som sköter all uppdatering mot databasen. Mitt vanliga användarid har då bara läsrättigheter till databasen och "tjänstekontot" har fulla rättigheter mot databasen.
Om man då gör en avinstallation med sitt vanliga användarid så kan det inte trigga en delete av databasen eftersom rättigheter för detta saknas på mitt användarkonto.
Detta kräver förståss att affärsapplikationen stödejer detta. Normalt görs detta via web.config filen (om det är Windows vill säga) där jag lägger in mitt databas tjänstekonto. Samma saker borde funka på andra typer av operativsystem.
Om det är ett seriöst affärssystem bör det stödja denna typ av konfiguration för man vill sällan eller aldrig att vanliga användarkonton direkt skall ha åtkomst mot själva databasen (mer än möjligtvis att läsa från den). All uppdatering av databasen skall alltid utföras av ett tjänstekonto som inte skall användas för något annat än för åtkomst till själva databasen. Därför använder jag web.config för att ange tjänstekontot till databasen. Men som sagt det kräver att affärssystemet klarar av att läsa web.config för att fånga upp databasens tjänstekonto.

Nu var det ju inte en uppdatering av databasen, utan en avinstallation av en klient, som inte rimligen borde påverka databasen någonstans.
Jag har själv kollat nu; igår fick jag meddelandet i tredje led, att basen helt var borta, men nu när jag tittar i filstrukturen på servern ligger hela basen där, och sista uppdateringen är strax innan jag avinstallerade.
Det som saknas är inte databasen, den finns; det som saknas är användaridentiteterna, så att ingen kan logga in i databasen.
Dessvärre har alla användare rättigheter på enheten där databasen ligger, det ser jag som en brist. Jag skulle hellre vara utan dem; det borde ju kunna fixas med någonting liknande suid för programmet som ska sköta databasen. Men som sagt, den första informationen var fel; databasen är inte raderad, men det ser ut som om användarfilen har försvunnit. Jag hoppas nu att supporten inte återställer hela basen från backupp utan bara ser till att användarna registreras igen och kan logga på.
Efterredigering:
Och nu är det fixat; ingenting har försvunnit, alla användare finns kvar, de har fortfarande samma lösenord osv; jag vet inte säkert, men det var något med en konfigurationsfil, och det är inte ens säkert att det var min avinstallation som ställde till problemet…
Puuuuuhhhh……