EU-kommissær: MySQL skal overleve Oracle-opkøb

Europa-Kommissionen har besluttet at kulegravekonsekvenserne af, at den største proprietære database-leverandør køber den største open source-database.

Europa-Kommissionen stikker nu en kæp i hjulet for Oracles køb af Sun Microsystems. EU's godkendelse er det sidste store formelle trin, der mangler, før fusionen er en realitet, men EU's accept risikerer nu først at komme til januar 2010.

Europa-Kommissionen har besluttet at kulegrave konsekvenserne af opkøbet, før den vil give grønt lys for fusionen. Det oplyser konkurrencekommissær Neelie Kroes i en pressemeddelelse torsdag.

Opkøbet har allerede fået de amerikanske myndigheders accept, men EU vil se nærmere på, hvad den sammenlagte koncern kan få af konsekvenser for databasemarket.

»Kommissionen er nødt til at se meget nøje på konsekvenserne for konkurrencen i Europa, når verdens største leverandør af proprietære databaser vil overtage verdens største leverandør af open source-databaser,« udtaler Neelie Kroes.

Oracle sælger dets Oracle Database, som målt på markedsandele reelt kun har konkurrence fra Microsofts SQL Server og IBM's DB2. Sun Microsystems sidder på den populære MySQL-database, som bruges i stort omfang til blandt andet webapplikationer.

Neelie Kroes mere end antyder, at EU er bekymret for, at Oracles kontrol med MySQL vil blive misbrugt til at lægge en dæmper på open source-databasen.

»Systemer baseret på open source er mere på vej ind som alternativer til lukkede løsninger. Kommissionen er nødt til at sikre, at sådanne alternativer fortsat vil være tilgængelige,« udtaler Neelie Kroes.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (39)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Peter Valdemar Mørch

Kommissionen er nødt til at sikre, at sådanne alternativer fortsat vil være tilgængelige

Umiddelbart lyder det jo rigtigt nok, men nu er det jo open source, så hvis Oracle skulle vælge at lukke MySQL delen af SUN og fyre alle medarbejdere, så står det jo enhver frit for at fortsætte mysql udviklingen andetsteds!

Som f.eks. http://askmonty.org/wiki/index.php/MariaDB - en fork af MySQL

Monty Program Ab was founded by Michael "Monty" Widenius, the founder and creator of MySQL

Hvad er problemet egentlig?

Jesper Lund Stocholm Blogger

Hej Peter,

Hvad er problemet egentlig?

Problemet er jo selvfølgelig, at det er urealistisk at tro, at en nedlukning af MySql-divisionen i Sun ikke vil være lammende for produktet i en lang årrække fremover. Det er naturligvis rigtigt, at da MySql er licenseret via GPL, så står det enhver frit at bruge kildekoden til at lave sin egen MySql-udgave, men "MySql" jo langt, langt mere end blot selve kildekoden ... ja bare supportdelen er ikke at kimse af.

Jeg kan se, at MariaDB har 12 aktive contributors - jeg vil umiddelbart tro, at det vil knibe med at få MySql-maskinen til at rumle med blot 12 personer.

:o)

Jeg tror såmænd ikke, at ORACLE vil lukke MySql ned, men det er da positivt, at EU-kommissionen kigger på sagen.

Anonym

I og med mySQL er open source, er der vel ikke noget der forhindrer en videreudvikling, så det at 'misbruge kontrollen' er vel ikke aktuelt.

Det kan meget vel tænkes, at Oracle ikke ønsker at bibringe kompetancer, men det er jo ikke det samme som at 'lukke' ned.

Jeg ved ikke hvad incitamentet er, men SapDB (senere MaxDB v/mySQL) blev lagt ud som Open source, ligeledes Interbase, der blev klonet til Firebird.

Begge er tilsyneladende 'bragt tilbage', da der formentlig ikke er økonomisk incitament til at videreføre projekterne.

Man kan vel ikke forpligte Oracle til at lægge udviklingsressourcer/kompetancer ud til mySQL(?).

Anders Kvist

Som Jesper skriver, så er MySQL ikke bare en stump GPL - supporten, uddannelse og masser af kommercielle værktøjer fra MySQL er netop den del vi kan risikere at gå hen og miste ved købet.

Jeg har allerede oplevet MySQL er begyndt at halte. De annoncerede customer conference i London til oktober i deres april nyhedsbrev, men har efterfølgende ikke skrevet noget om det og da jeg hev fat i dem nu her, viser det sig at de bare har aflyst den fordi de ikke ved hvad der skal komme til at ske...

/Anders

Henrik Jensen

men "MySql" jo langt, langt mere end blot selve kildekoden ... ja bare supportdelen er ikke at kimse af.

Jeg mener også at der er flere værktøjer i eller til MySql enterprise versionen som ikke er open source.

En anden meget væsentlig del er selve brandet 'MySQL'. Langt den største del af de 1 millard US Dollars som Sun betalte for MySQL AB var formentligt for MySQL brandet.

Og igen en anden meget væsentligt element er at MySql er dual licensed. Det er jo blandt andet det som MySQL AB og nu Sun også tjener penge på udover support m.v., at der nogle virksomheder som ønsker at benytte produktet i en situation hvor de ikke kan leve med betingelserne i GPL. Altså køber de en kommerciel licens af Sun. Kun Sun (snart Oracle) er i stand til at sælge disse kommercielle licenser og bestemmer derfor også under hvilke vilkår, priser m.v. og om de overhovedet gider at forsætte med det eller måske i stedet hellere vil introducere en Oracle OEM version til dette formål.

Martin Bøgelund

Jeg kan se, at MariaDB har 12 aktive contributors - jeg vil umiddelbart tro, at det vil knibe med at få MySql-maskinen til at rumle med blot 12 personer.

"Don't underestimate the power of the source!"

Pingvinister har råbt vagt i gevær siden de første meldinger om at MySQL nu så ud til at blive stedbarn hos Oracle.

Men open source miljøet er fyldt med pragmatikere - så længe Oracle behandler MySQL godt, bliver de der. GPL er stadig GPL.

Den dag Orcle melder at nu er det slut med MySQL som fri og åben database (hvis det sker), vil miljøet stå skulder ved skulder, og vise Oracle at det er Oracle der mister noget ved den manøvre, og ikke MySQL og open source.

Ser man tilbage på angreb på open source udvikleres frihed, vil man se at det typisk er mundet ud i noget positivt.

SCO sagen endte med bedre kontrol af contributers til Linux kernen, bit-keeper balladen endte med git,...

Så 12 contributers i dag er ikke det samme som 12 contributers i al fremtid.

Henrik Jensen

det er Oracle der mister noget ved den manøvre, og ikke MySQL og open source.

Miljøet kan gøre lige hvad de vil men de får ikke lov til at udbrede et produkt der hedder eller hvor 'MySQL' indgår i navnet uden at de får lov af Oracle, og det tager lang tid og koster mange penge at opbygge et nyt brand med samme værdi som 'MySQL'.

Alle de virksomheder som i dag køber en kommerciel licens af MySQL for at kunne undgå GPL betingelserne, de kommer også i klemme, det kan miljøet heller ikke gøre noget ved.

Kristian Thy

Alle de virksomheder som i dag køber en kommerciel licens af MySQL for at kunne undgå GPL betingelserne, de kommer også i klemme, det kan miljøet heller ikke gøre noget ved.

Det er det vi kalder "ris til egen røv" eller "så kan de lære det". De er jo i og for sig hverken værre eller bedre stillet end hvis de havde købt en Oracle- eller (gud bedre det) en SQL Server-licens.

Anonym

Kristian skriver

en SQL Server-licens

Oracle og mySQL er også [b]SQL Server[/b]

Du tænker formentlig på [b]produktet[/b] MS SQLServer.

Jeg har hørt folk snakke om SM SQLServer som 'SQL', meen altså SQL er ikke det samme som MS SQLServer.

Det samme med MS Word, som i daglig tale omtales som Word.
Hvad blev der af WordPerfect?

Men bortset fra det, så har GPL licensen formentlig gjort større skade end gavn for udbredelsen af mySQL inden for 'commercial strength' merkedet.

Der findes andre alternativer, som muligvis er billigere end mySQL.

Kristian Thy

Oracle og mySQL er også SQL Server

Du tænker formentlig på produktet MS SQLServer.

Hold da op med det pedantiske pjat. Selvfølgelig tænker jeg på Microsoft® SQL Server®, som produktet rettelig hedder. Og jeg ville aldrig kalde et generisk databaseprodukt for en "SQL-server". Det hedder en databaseserver.

Det samme med MS Word, som i daglig tale omtales som Word.
Hvad blev der af WordPerfect?

Hvad fanden har det med nogetsomhelst at gøre?

Henrik Jensen

Det er det vi kalder "ris til egen røv" eller "så kan de lære det". De er jo i og for sig hverken værre eller bedre stillet end hvis de havde købt en Oracle- eller (gud bedre det) en SQL Server-licens.

De får trods alt kildekoden, og det er nok den væsentlige grund til at de køber en MySQL med kommerciel licens. Det er også derfor at den kommercielle licens omtales til primær brug for OEMs ISVs, VARs. Det er virksomheder der vil ændre i kildekoden og videredistribuere eller integrere i egen produkter uden de begrænsninger det giver i forhold til GPL.

Virksomheder som bare er generelt bange for open source med hensyn til patenter m.v. de kan jo bare købe en Enterprise Subscription og så mener jeg at Sun lover at beskytte dem mod eventuelle retssager.

Baldur Norddahl

Jeg har svært ved at se problemet. MySQL er mere et godt brand end det er en god databaseserver. Bliver den lagt på is så skifter folk bare til noget andet - medmindre den gamle version er god nok, hvilket den nok er i rigtig mange år fremover for de fleste projekter.

Personligt så jeg gerne at nogle flere fik øjnene op for alternativer som PostgreSQL.

Henrik Jensen

Men bortset fra det, så har GPL licensen formentlig gjort større skade end gavn for udbredelsen af mySQL inden for 'commercial strength' merkedet.

Men det behov varetager den kommercielle licens jo.

Så kan du selvfølgelig sige, jamen hvis man nu havde benyttet en gratis licens som gav de samme muligheder som den kommercielle licens så havde det selvfølgelig hjulpet markedet endnu mere.

Men på den anden side så skal Sun jo også finde nogle områder hvor de kan tjene nogle penge.

Henrik Jensen

Nemlig! Og alt andet er glasur på kagen!

Men det er den glasur der skaber reelle konkurrenter til Oracle, IBM, Microsoft på databasemarkedet og det forstår Europa kommissionen heldigvis.

Hvis du mener at man bare kan lave en fork af MySQL og derefter dagen efter have en reel konkurrent til Oracle, IBM, Microsoft og MySQL selv, hvad tænkte du så for mindre end 2 år siden da du så at Sun købte MySQL for 1 milliard US dollars?

Martin Bøgelund

Men det er den glasur der skaber reelle konkurrenter til Oracle, IBM, Microsoft på databasemarkedet og det forstår Europa kommissionen heldigvis.

Fisk.

Oracle, IBM, og Microsoft konkurrerer med hinanden på databasemarkedet. Jeg kan ikke se formålet med at EU skal gennemtvinge en open source konkurrent der hedder noget bestemt...

Jeg synes heller ikke du skal lægge mig ord i munden mht. at lave reelle konkurrenter til aktørerne på databasemarkedet. Det har jeg ikke udtalt mig om.

Jeg har mulighed for at bruge MySQL - eller HenrikSQL efter et navneskift - og det har alle andre også. Det er det vi kan forlange. Om vi så kan bruge det til noget fornuftigt er op til os - ikke Oracle eller EU kommissionen.

Henrik Jensen

Oracle, IBM, og Microsoft konkurrerer med hinanden på databasemarkedet. Jeg kan ikke se formålet med at EU skal gennemtvinge en open source konkurrent der hedder noget bestemt...

EUs formål i den her sammenhæng er at sikre den fri konkurrence det er ikke at redde MySQL. Hvis de vurderer at Oracle slagter MySQL, men at det faktisk ikke vil betyde det store for den fri konkurrence så tror jeg stadig at de vil godkende opkøbet.

Men hvis det hindrer den fri konkurrence så kan blot tilstedeværelsen af nogle forks af MySQL ikke rette op på dette. Det er jo ikke sådan at ethvert alternativ uanset størrelse, organisering og omdøbe skaber reel konkurrence.

Og i den sammenhæng har 'MySQL' brandet faktisk en stor betydning for 'MySQL' databasens konkurrenceevne.

Jeg har mulighed for at bruge MySQL - eller HenrikSQL efter et navneskift - og det har alle andre også.

Prøv at lave en fork af MySQL og kald den HenrikSQL og så læg dem begge ud gratis til Download på en hjemmeside med akkurat samme beskrivelse af produktet på nær navnet.

Stort set samtlige besøgende ville downloade MySQL fordi at det er et brand de kender, har hørt om m.v. på trods af at beskrivelse, pris m.v. ville være fuldstændigt den samme. Selv hvis du skriver at HenrikSQL er en fork af MySQL så vil det stadig forholde sig sådan.

Hvis du lavede to hjemmesider. Én med MySQL samt kommercielle alternativer fra Oracle, IBM og Microsoft og én med HenrikSQL og kommercielle alternativer fra Oracle, IBM og Microsoft og så bad en række IT-chefer vælge på de to hjemmesider hvilken database de ville benytte, så ville du se at på siden hvor at MySQL også er tilstede vil en hvis procentdel vælge denne. På hjemmesiden med HenrikSQL, på trods af at du skriver at det er en fork af MySQL, der ville du se at langt flere af IT-cheferne slet ikke ville overveje HenrikSQL men vælge et af de kommercielle alternativer.

Jeg giver dig helt ret at det virker umiddelbart ikke logisk at det forholder sig sådan, men ikke desto mindre så er det tilfældet. Brands kan have en ekstrem høj betydning for konkurrenceevnen.

I forbindelse med Suns opkøb af MySQL AB husker jeg at der var nogle der var ude at estimere sig frem til at prisen Sun havde betalt for koden + medarbejdere reelt lå omkring 150 millioner dollars. De sidste 850 millioner dollars var for 'MySQL' brandet. Så selve brandet 'MySQL' er altså langt mere værd end selve 'MySQL' koden, og det er altså kun koden der er frigivet under GPL.

Prøv også at forestille dig Coca Cola Company droppe Coca Cola navnet på deres Cola. De ville med det samme miste markedsandele på trods af at der er akkurat det samme i flasken/dåsen.

Desuden er der jo også virksomheder som bygger videre, integrerer MySQL i egne produkter m.v. som har købt kommerciel licens for at slippe for GPL. Hvis Oracle fandt på at droppe MySQL så ville alle disse virksomheder pludselig være tvunget til enten at springe på GPL versionen (og det passer sikkert ikke til deres forretningsmodel for ellers havde de jo nok ikke betalt for en kommerciel licens i første omgang) eller måske kigge imod andre produkter fra f.eks. Oracle.

Simon Lyngshede

Det er da fint at EU interessere sig for emnet og ønsker at der skal være konkurrence på database markedet, men jeg tror ikke det er det store problemet i denne situation.

De mennesker og organisationer der i forevejen bruger MySQL, er i min verden ikke nogen der ville have valgt Oracle, hvis MySQL ikke havde været det. Hvis Oracle slagter MySQL, så ville mit næste valg ikke være at Oracle Database 11g, eller hvilken version vi nu er nået til. Økonomien og funktionaliteten i de to produkter er vidt forskellige, selv om der nu nok skal være nogle situationer hvor MySQL potentielt kan betyde et salg mindre af en Oracle licens mindre, men jeg tror det er meget få.

Oracle har brug for at beholde både deres "originale" database software, og MySQL, fordi målgruppen for de to produkter er så forskellige.

Martin Bøgelund

EUs formål i den her sammenhæng er at sikre den fri konkurrence det er ikke at redde MySQL. Hvis de vurderer at Oracle slagter MySQL, men at det faktisk ikke vil betyde det store for den fri konkurrence så tror jeg stadig at de vil godkende opkøbet.

Det er faktisk dig der argumenterer for at EU's formål er at redde MySQL.

Konkurrencen siger du jo selv er sikret, idet du nævner 3 [i]konkurrerende[/i] DBMSer.

Men hvis det hindrer den fri konkurrence så kan blot tilstedeværelsen af nogle forks af MySQL ikke rette op på dette. Det er jo ikke sådan at ethvert alternativ uanset størrelse, organisering og omdøbe skaber reel konkurrence.

Du nævner selv de andre konkurrerende databaseleverandører, og hvis du skal være helt ærlig, så har du også hørt om PostgreSQL, måske endda Firebird. Der er stadig et hav af alternativer uden om MySQL og Oracle, og så længe man kan forke MySQL, er det bare én mulighed blandt mange.

Open source er jo designet til at sikre brugeren flere muligheder end closed source ifm. en evt. fallit eller smarte tiltag fra leverandøren. Hvorfor tror du at netop i MySQLs tilfælde, da virker open source ikke?

Desuden vil reaktionen på en evt. nedlukning af MySQL i sig selv trigge at folk leder efter alternativer til MySQL. Hvis jeg bruger blæsten omkring en MySQL-nedlukning til at markedsføre HenrikSQL, og kan få skrabt et par gode udviklere til mig, så kan et fork få meget mere vind i sejlene end hvis jeg bare fork'er MySQL en alm. fredag i september.

Alene det store antal installationer af MySQL vil være et enormt incitament til at undersøge forks, hvis man pludselig får at vide at nu koster MySQL kassen. Incitamentet er der ikke nu, og derfor vil det naturligvis gå som du spår.

Man springer jo ikke fra MySQL til et fork fordi man synes det kunne være morsomt. Men hvis det viser sig nødvendigt og den bedste løsning, så er der altså ingen andre stopklodser.

Henrik Jensen

Det er faktisk dig der argumenterer for at EU's formål er at redde MySQL.

Konkurrencen siger du jo selv er sikret, idet du nævner 3 konkurrerende DBMSer.

Nej at de måske vil sikre sig at MySQL "reddes" for at sikre at det ikke har en uheldig effekt på konkurrencen. De er jo blandt andet er bange for at det måske kan betyde højere priser hvis den mest populære og mest kendte open source database forsvinder.

Det er jo slet ikke noget vi behøver at sidde og debattere. Det er bare at læse pressemeddelelsen fra EU.

Du nævner selv de andre konkurrerende databaseleverandører, og hvis du skal være helt ærlig, så har du også hørt om PostgreSQL, måske endda Firebird. Der er stadig et hav af alternativer uden om MySQL og Oracle, og så længe man kan forke MySQL, er det bare én mulighed blandt mange.

Men det virker bare ikke til at disse alternativer er i bevidstheden hos mange beslutningstagere, det er i hvert fald min erfaring og det som EU vil undersøge. MySQL er i dag et brand som er i bevidstheden hos mange beslutningstagere og har et godt omdømme. Der er PostgreSQL og firebird slet ikke endnu. Samtidigt har MySQL den kæmpe fordel at det er bakket op af en stor international virksomhed, og for mange beslutningstagere er det også et vigtigt element. Nu snakker jeg ikke om private beslutningstagere eller om små virksomheder på et par enkelte mand, men i højere grad større organisationer. Men det er også hos de større organisationer at jeg tror at EU primært vil vurdere hvad Oracles overtagelse af Sun har af indflydelse på konkurrencen.

Jeg tror ikke vi bliver enige, for du mener reelt at det er koden der er det eneste vigtige. Brandet, størrelsen på den organisation der står bag, hvilke ekstra services de tilbyder m.v. er underordnet.

Det sjove er at hvis jeg kommer med et udsagn der hedder "mange produkter kan du sælge blot fordi at der står Microsoft på dem", så tror jeg at du er helt enig. Men samtidigt argumenterer du for at brandet ikke betyder noget som helst.

Samtidigt så regner jeg ikke de folk der sidder hos Sun for nogle klaphatte. Så når de betalte 1 milliard us dollars for MySQL AB, hvor at langt størstedelen af prisen er brandet, så tror jeg det er fordi at de nøje har vurderet at mulighederne for at skabe et konkurrerende produkt var langt mindre hvis man bar startede med en fork af MySQL med et helt nyt brand m.v.

Man springer jo ikke fra MySQL til et fork fordi man synes det kunne være morsomt. Men hvis det viser sig nødvendigt og den bedste løsning, så er der altså ingen andre stopklodser.

Enig. Pånær den del af koden som ikke er open source (nogle af enterprise værktøjerne) og det faktum at der så ikke længere kan skaffes MySQL kildekode udover under den begrænsende GPL licens.

Men som sagt så kigger EU på om det er nødvendigt at bibeholde en reel fremtidig konkurrent til Oracle, IBM og Microsoft i form af MySQL. Om der stadig er kildekode fra MySQL tilgængelig hvis Oracle dropper MySQL er kun en meget lille del af dette.

Christian Nobel

Hej Jesper.

Base-64 trækker ikke lige umiddelbart, og jeg har overvejet blob.

Men uagtet hvad, så kommer jeg vist ikke uden om at lave en form for parser, så det nemmeste er nok bare at lave en programstump der konsekvent substituerer '", osv med \'\"\, i den sætning jeg gerne vil have gemt.

At der så iøvrigt i tidernes morgen har været nogen der synes at det er åh-så-smart at bruge et helt almindeligt tegn som ' til delimiter, i stedet for at bruge et tegn der ikke benyttes i almindeligt dagligt sprogbrug er så en anden sag.

/Christian

Christian Nobel

Hvordan påvirker EU mon efterhånden europas ry blandt internationale virksomheder i resten af verden (USA / fjernøsten)?

Hvis det kan begynde at få amerikanerne til at ændre adfærd væk fra en selvtilstrækkelig herrefolksmentalitet, så behøver man vel næppe spekulere så meget på "ry"!

/Christian

Anonym

Men uagtet hvad, så kommer jeg vist ikke uden om at lave en form for parser, så det nemmeste er nok bare at lave en programstump der konsekvent substituerer '", osv med \'\"\, i den sætning jeg gerne vil have gemt.

Hvis du koder standard compliance SQL, og ikke bruger MS'es [] eller mySQL's `-er, så skal du bare skrive:
INSERT INTO tabel (intfield,stringfield) VALUES (1234,'dette er en streng')

Dét der med at skrive
INSERT INTO tabel osv.,
eller
INSERT INTO [tabel] osv.
er bare vendoe lockin's.

Det er ikke nødvendigt, og jeg er lidt i tvivl om MS eller mySQL er værst til at udbrede lockin'en.

Når først koden er indsyltet i den slags, er det for 'dyrt' at skifte database provider.

Kristian Thy

Hvordan påvirker EU mon efterhånden europas ry blandt internationale virksomheder i resten af verden (USA / fjernøsten)?

Formentlig positivt blandt alle de virksomheder der kæmper for de frie markedskræfter mod monopolisterne.

Det er i øvrigt heller ikke noget nyt at lovgivning i et land/område har indflydelse på den måde andre må drive forretning på. Eksempler herpå er Sarbanes-Oxley og RoHS.

Anonym

Selvfølgelig tænker jeg på Microsoft® SQL Server®, som produktet rettelig hedder.

Det var netop dét jeg mente med marketing tricks.
Folk identificerer SQL Server med Microsofts SQLServer.

Og jeg ville aldrig kalde et generisk databaseprodukt for en "SQL-server". Det hedder en databaseserver.

Nåh ?
Jeg har da gennem gud ved ikke hvor mange år arbejdet med et database server produkt, som ikke er SQL baseret.

Så du kan ikke sætte lighedstegn mellem SQL Server og Database server.

Word.. osv samt
Hvad fanden har det med nogetsomhelst at gøre?

Som nævnt har det med marketingtricks at gøre.
Hvis man siger 'Word', så tænker folk automatisk på MS Word, og hvis man siger SQL Server, som du selv bruger, så tænker man automatisk på MS SQLServer.

Marketing tricks - marketing tricks..

Det har intet med mySQL debatten at gøre, men det slog mig bare, at folk sætter lighedstegn mellem SQL Server og Microsoft produkter - intet andet.

Christian Nobel

Hvis du koder standard compliance SQL, og ikke bruger MS'es [] eller mySQL's `-er, så skal du bare skrive:
INSERT INTO tabel (intfield,stringfield) VALUES (1234,'dette er en streng')

Den fangede jeg ikke helt, for det jeg ønsker er noget i denne stil:

INSERT INTO tabel (intfield,stringfield) VALUES (1234,'dette er Stig' "bondegård"')

Endvidere kan (skal) 'dette er Stig' "bondegård"' være en SQL sætning, men det skal ikke opføre sig som en injection.

@Dennis - nu var ideen ikke at sætningerne skulle "genbruges" direkte, men udelukkende at jeg kunne lave et bibliotek med smarte sætninger - ideen er at jeg gemmer sætningerne, så når jeg nu om et par dage har glemt hvad jeg lavede, så kan jeg nemt finde dem.
Bevares det kan man også lave med post-it eller Tomboy, men jeg synes bare det matcher dette århundrede lidt mere at bruge en database til det.

/Christian

Christian Nobel

Christian, det forhindrer prepared statements dig da ikke i?

Nej man kan vel ikke sige at prepared statements forhindrer mig i det, men jeg kan bare ikke lige se fidusen i at skulle lave prepared statements, hvergang jeg bare vil gemme et snip.

Så min konklusion er nok at det smarteste er at jeg i mit klientprogram laver en parser der hvergang det drejer sig om at gemme snips, automatisk indskyder \ foran de "farlige" tegn.

Det at vise data er ikke noget problem, for det vises korrekt af en vilkårlig SQL klient.

/Christian

Lasse Reinholt

Det er faktisk dig der argumenterer for at EU's formål er at redde MySQL.

Hende EU kommisæren siger da:

... open-source software are increasingly emerging as viable alternatives to proprietary solutions," she said. "The commission has to ensure that such alternatives would continue to
be available.

Jeg mener, det er problematisk når EU slår ned på sager baseret på ideologi fremfor politik. Det gør det nemlig uforudsigeligt for erhvervslivet, hvem/hvad, de vil ramme næste gang og gør dermed Europa uattraktivt.

Hvis EU vil til at støtte ideologier, så skal de have det ind som formålsparagraf i EU traktaten først. Det andet er uforudsigelig opførsel.

Uffe Kousgaard

Så du kan ikke sætte lighedstegn mellem SQL Server og Database server.

Der er der heller ikke andre end dig der gør. MS SQL Server, i daglig tale "SQL Server", er en database, men det gør det ikke til den eneste database endsige den eneste database, der anvender SQL.

Anonym

@Christian

INSERT INTO tabel (intfield,stringfield) VALUES (1234,'dette er Stig' "bondegård"')

Der er forskellige måder at gøre det på, afhængig af, om det er et statisk statement, eller program genereret statement.

Hvis du vil bruge det som statisk statemetn, så skal du bare erstatte ' med 2 stks. '
Altså:
INSERT INTO tabel (intfield,stringfield) VALUES (1234,'dette er Stig''s "bondegård"')

Det tror jeg alle databaser vil forstå.
Når man snakker SQL injection, så kan man lave 'fattigmandsudgaven', hvor man replacer ' med '' (2 stk '), som er standard, eller \', som åbenbart er mySQL måden.

Den rigtige, og eneste måde, er at bruge parameterized queries, eller prepared statements, eller parameter binding, afhængig af hvilket (database) miljø man befinder sig i.

Her bruger man:
INSERT INTO tabel (intfield,stringfield) VALUES (?,?)
eller navngivne parametre, afhængig om database klienten understøtter det.

Så humlen er, at man sender SQL'et til serveren, altså [b]uden[/b] input.

Derefter sender man parameterindholdet, som ikke påvirker det før sendte SQL.

Jeg har lavet en generel funktion til ASP, som gør det nemmere at bruge parameterized queries:
http://w-o-p-r.dk/tips/asp/sql.inc.asp.txt

Og i dit tilfælde, hvis input skulle komme fra en form, skriver man blot: [code=asp]
rowsaffected = query(Conn,"INSERT INTO tabel (intfield,stringfield) VALUES (?,?)",Array(Request.form("intfield"),Request.form("stringfield"),-1)
[/code]

Mht SQL injection er der intet behov for inputvalidering, eller diverse mærkværdige escape funktioner.

Input validering kan dog være en god idé, da man kan fange åbenlyse fejl, og undgå et roundtrip til serveren.

Nu har jeg nævnt ASP, men samme metodik gælder samtlige applikationer, ikke kun webapplikationer.

Anonym

Der er der heller ikke andre end dig der gør.

Dér tager du grueligt fejl.

Jeg havde ansvaret for implementering af mere end 200 MS SQLServere i forbindelse med Navision Stat.

Du drømmer ikke om hvor tit, og hvor mange steder, jeg har hørt:
Kender du nogle, der kender til 'SQL'?
eller
Kender du nogle, der kender til 'MS SQL'?
eller
Kender du nogle, der kender til 'SQL Server'?

Det kan godt være jeg er en brokkerøv, men det gør det altså svært at kommunikere over hvad spørgsmålet egentlig går ud på.

Jo, i de givne tilføælde vidste jeg gost det handlede om MS SQLServer, men ææh:
'SQL' - er det sproget eller produktet ?
'MS SQL' - er det T-SQL eller produktet?

Hvad forstår du ved 'SQL' eller 'MS SQL'?

Log ind eller Opret konto for at kommentere