22. januar 2004 - 08:25Der er
14 kommentarer og 2 løsninger
Et par spørgsmål ang. SQL 2000
Jeg har den lille Gratis udgave af SQL til at kører, og har fået at vide at den max kan klarer 5 forspøgsler på engang. Men hvad menes der med det???
Jeg vil osse gerne have det sådan at man kan kontake selve SQL serveren kan kontaktes over internettet altså online... kan jeg det? Eller skal jeg kører MySQL for at det kan virke???
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
MSDE'en skruer simpelthen ned for performance når der er mere end 5 samtidige queries der afvikles.
Hvis du vælger at åbne en port mod SQL Serveren så man kan tilgå den direkte - så er det MEGET vigtigt at du sætter DENY EXECUTE ON xp_xxxxx TO PUBLIC i MASTER databasen (dvs. nægter public (everyone) at udføre extended stored procedures) samt til alle job-relaterede stored procedures (sp_job_start, sp_job_add etc).
Da en SQL Server p.t. skal køre med administrative privs på serveren, så kan man, hvis man tiltvinger sig adgang, bruge xp_xxxx procedurerne til at kontrollere operativsystemet. Og via job-procedurene kan man faktisk overskrive operativsystemets filer.
Sørg også for, at dine administrative konto (fx SA) ikke kan bruges til at forbinde med. Det klares nemt ved at indsætte et semikolon (;) i adgangskoden. Du må heller ikke lade DBO konti være tilgængelige - du skal lave separate brugerkonti der kun kan udføre de mest nødvendige operationer på så få objekter (tabeller/stored procedures) som muligt. Bedst er, at brugerkonti kun kan afvikle dine egne definerede procedurer.
Gør du de ting, så er der gode chancer for, at din server ikke hackes indenfor de første 24 timer... Derefter, heh... held og lykke.
Men jeg skal slet ikke bruge min SQL server til andet end at have data, den skal ikke have nogen Stored Procedures.... så vil den osse "død" når jeg sender mere en 5 queries afsted med måske 10 forskellige VB programmer???
Sikkerhedsmæssigt bør du tilgå data via stored procedures, ikke via sql statements. Det sikrer, at kun de operationer du har planlagt kan udføres, og forhindrer SQL Injection.
Mht forbindelser - Om det er et program der har 5 databaseforbindelser eller 5 programmer der har 1, det er ligegyldigt. Hvis du starter mere end 5 samtidige queries, så får du dårligere performance. De er kun samtidige hvis de kører på samme tid, er der fx blot 1 ms mellem dem, så er de ikke samtidige. Bemærk at det er queries der er tale om, ikke forbindelser!
Ok... så er jeg ikke så bange for det med Queries.
MEN jeg bruger iøjeblikket ADO til at koble op og udfører Queries med SQL statements så som: _____________________________________________________________________________________ Set rsSQLKundeGEM = New ADODB.Recordset rsSQLKundeGEM.LockType = adLockOptimistic sql = "SELECT * FROM kunder" rsSQLKundeGEM.Open sql, "PROVIDER=SQLOLEDB; SERVER=DOMINO; DATABASE=master; USER ID=XXX; PASSWORD=XXX;" rsSQLKundeGEM.Fields("kundenavn").Value = txtNavn.Text rsSQLKundeGEM.Update rsSQLKundeGEM.Close UpdateSQLliste __________________________________________________________________________________
Hvis jeg skal lave SP'er, hvordan gør jeg så det???
Jeg har jo ikke nogen manager til min SQL database... kan man hente en fra et eller andet sted???
arne_v har da faktisk givet svaret - og jeg har uddybet en smule...
I øvrigt : hvis du virkelig har behov for at lave en direkte forbindelse mellem et vb program og en server henover internettet - så bør du benytte en VPN tunnel. Det er den eneste måde man kan opnå til tilstrækkelig grad af sikkerhed på.
En anden mulighed er at lave en webfrontend til databasen og så kommunikere med den fra vb programmet.
thja, jeg vil da også gerne være med på et del-svar :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.