Toon posts:

Veilige ODBC verbinging met SQL server database

Pagina: 1
Acties:
  • 275 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Heeft iemand een idee hoe ik een verbinding met een SQL server 7.0 database kan maken die veilig is.

De bedoeling is om in de ODBC gegevensbronnen een DSN aan te maken naar de SQL-server database. Vervolgens wil ik vanuit een VB applicatie de database gaan benaderen. Ik had hiervoor ADO in gedachte. Dit werkt op zich prima. Ook via het internet werkt dit omdat de DSN aangemaakt kan worden naar een server op afstand.

Mijn doel is echter om deze verbinding veilig te maken. Het liefst doormiddel van ssl certificaten. Zodat niet iedereen de SQL database kan benaderen maar alleen mensen met de door mij gegeven applicatie en een certificaat.

Het probleem zit hem volgens mij in het volgende:
De DSN is aangemaakt naar de SQL server, en een certificaat geeft toegang tot een IIS. Of zit ik helemaal verkeerd te denken.

Ik zou het erg op prijs stellen als iemand me hiermee kan verder helpen. Wie heeft hier ervaring mee.


Bedankt
KingLois

Verwijderd

Wat wij doen:

Onze applicaties gebruiken ADO met bijvoorbeeld deze connectionstring:

Remote Server=http://100.101.102.103;Provider=MS Remote;DSN=MIJNDSN

Die connectionstring 'weet' alleen het programma, dus niet onze usertjes. Vervolgens heeft de gebruiker recht op de MSADC folder van IIS, en zijn hier ook de juiste opties voor aangegeven.

Door de ODBC verbinding op de IIS server die DSN 'MijnDSN' kent op de database server gaat dat verder helemaal naar wens. Wij gebruiken dan ook nog eens Basic Authentication op de MSADC virtual directory ( Via HTTPS ) om een gebruiker te authenticeren.

Volgens mij behoorlijk veilig, hoop dat je er wat aan hebt.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

SSL wordt volgens mij niet ondersteund in SQL7 (SQL2000 wel dacht ik), maar daar ben ik eigenlijk niet zo in thuis.

Verder kan je het geheel nog wat meer beveiligen door te werken met application roles ipv standaard logins, daarmee kan je zorgen dat alleen vanuit je applicatie geconnect kan worden naar je database (als de rest van je security binnen MSSQL in orde is natuurlijk ;)).

Today's subliminal thought is:


Verwijderd

Topicstarter
Op woensdag 12 december 2001 13:08 schreef apottjewijd het volgende:
Wat wij doen:

Onze applicaties gebruiken ADO met bijvoorbeeld deze connectionstring:

Remote Server=http://100.101.102.103;Provider=MS Remote;DSN=MIJNDSN

Die connectionstring 'weet' alleen het programma, dus niet onze usertjes. Vervolgens heeft de gebruiker recht op de MSADC folder van IIS, en zijn hier ook de juiste opties voor aangegeven.

Door de ODBC verbinding op de IIS server die DSN 'MijnDSN' kent op de database server gaat dat verder helemaal naar wens. Wij gebruiken dan ook nog eens Basic Authentication op de MSADC virtual directory ( Via HTTPS ) om een gebruiker te authenticeren.

Volgens mij behoorlijk veilig, hoop dat je er wat aan hebt.
Volgens mij is dat precies wat ik wil.
Als ik het goed begrijp dan is de DSN niet op de client maar op de server aangemaakt.
Wat ik niet begrijp is wat je bedoeld mety MSADC.
En wat je bedoeld met de juiste opties

Bedankt voor je hulp zover.
KingLois

Verwijderd

Klopt, DSN staat op de webserver ( daar kom je met de MSADC binnen, de MSADC hoort een virtuele directory te zijn in je IIS, waar je ook weer rechten voor gebruikers op kan geven etc ).

Met die MSADC opties bedoel ik dat je voor een 2000 server nog even het volgende moet doen:

- Registreer het document C:\Program Files\Common Files\System\msadc\handunsf.reg.

-Open msdfmap.ini (makkelijkste via StartMenu->Run) en verander bij Connect Default de waarde naar Access=ReadOnly

-Ga naar de Directory Security van de MSADC Virtual Directory en druk op Edit bij Anonymous Access and Authentication control en kies daar voor alleen Basic Authentication. ( zo zorg je er voor dat de gebruiker een aanmeldingscherm krijgt )

-Druk vervolgens ook op Edit bij IP address and domain name restrictions en kies By default, all computers will be: Granted Access

Hoop dat je er wat aan hebt.

Succes!

Verwijderd

Topicstarter
Op vrijdag 14 december 2001 09:15 schreef apottjewijd het volgende:
Klopt, DSN staat op de webserver ( daar kom je met de MSADC binnen, de MSADC hoort een virtuele directory te zijn in je IIS, waar je ook weer rechten voor gebruikers op kan geven etc ).

Met die MSADC opties bedoel ik dat je voor een 2000 server nog even het volgende moet doen:

- Registreer het document C:\Program Files\Common Files\System\msadc\handunsf.reg.

-Open msdfmap.ini (makkelijkste via StartMenu->Run) en verander bij Connect Default de waarde naar Access=ReadOnly

-Ga naar de Directory Security van de MSADC Virtual Directory en druk op Edit bij Anonymous Access and Authentication control en kies daar voor alleen Basic Authentication. ( zo zorg je er voor dat de gebruiker een aanmeldingscherm krijgt )

-Druk vervolgens ook op Edit bij IP address and domain name restrictions en kies By default, all computers will be: Granted Access

Hoop dat je er wat aan hebt.

Succes!
Hartelijk dank!

Binnenkort ga ik dat uitproberen.
Ik hoop dat ik voor vragen nog even bij je terrecht kan.

MVG
KingLois

Verwijderd

LET OP:

Voor degene die dit nog niet weten, gebruik gewoon een UDL en geen ODBC meer.

Je doet het volgende, maak gewoon op je websmurfer een nieuw tekst bestandje aan. Hernoem deze naar naam.udl

dubbel klik erop en je kan rechtstreeks databases aanroepen zonder ODBC. Om in je script te gebruiken moet je het volgende doen:

--------------------------------------------------------
global.asa

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
sub Application_OnStart
application("DBLogin") = "FILENAME=e:\webserver\abnamro.udl"
end sub
</SCRIPT>
--------------------------------------------------------
In je code kan je nu een DB connectie maken met de volgende code:

Set objRs = Server.Createobject("ADODB.recordset")
sSQL = "................................"
objRs.open sSQL, application("DBlogin")

----------------------------------------------------------

Nog een tip: Koop Active Server Pages 2.0 van Sams
ISBN: 0-672-31613-7

Succes allemaal 8-)

Verwijderd

Vraagje aan beflapje, waarom zal je nog een UDL gebruiken als je alle gegevens voor de UDL ook in je connectionstring kan plaatsen? Een UDL file kan je aanpassen, een connectionstring die is ingebakken ( of op een door jou aangepaste manier is weggeschreven ), kunnen ze niet mee gaan kloten. ( Ik geef toe, de UDL kan je natuurlijk op een plek zetten waar niemand zomaar bij kan, maar als je de connectionstring direct hebt, hoef je ook niet naar www.verweggistan.nl te gaan om de UDL in te lezen ). Maar het nut van een UDL ( en ook de ODBC ) is mij altijd een beetje ontschoten. Kinglois, ik hoop dat het je lukt, succes alvast.
Pagina: 1