webForumDet fria alternativet

Koppla till databas med lösenord

ASP

4 svar · 372 visningar · startad av Razor

Medlem sedan maj 200067 inlägg
Frågan#1

Kan jag ange lösenord till en Access-databas när jag använder mig av DSN-less koppling enligt nedan?

Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("filnamn.mdb")

När jag använder mig av DSN kan jag ju t.ex göra:

Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "DSN=minDSN;UID=anvID;PWD=passWord"

Någon som vet?

Mvh Razor

Medlem sedan maj 2000107 inlägg
#2

I Access databaser kan man bara sätta password, så något användar ID blir det inte.

Och svaret blir lite olika. Ska du använda OLE DB (vilket ju går snabbare, har det konstaterats) så blir det lite annorlunda, men jag kopierar ut de connection stringarnar som jag hade till min ADO Version Check:

dim strAcDatSrc, strAcPass, strCn, objCn

strAcDatSrc = "data sourcen, dvs sökvägen till din databas"
strAcPass = "Ditt lösenord"
databas sökvägen"
strCn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.Mappath(strAcDatSrc)

set objCn = Server.CreateObject("ADODB.Connnection")

Sedan innan du connectar så måste du lägga till en property:

objCn.Properties("JET OLEDB:Database Password") = strAcPWD

Sedan är det att bara fortsätta som vanligt

objCn.open strCn

ODBC Varianten är ju lite lättare. Men det lönar sig att köra Jet OLE DB, även om de har flummat till det lite :\. Men bara för att illustrera så kan jag ju visa hur det funkar med ODBC:

dim strAcDatSrc, strAcPass, strCn, objCn

strAcDatSrc = "data sourcen, dvs sökvägen till din databas"
strAcPass = "Ditt lösenord"

databas sökvägen"
strCn="Driver={Microsoft Access Driver (*.mdb)}; DBQ="&Server.Mappath(strAcDatSrc)&"; uid=; pwd="&strAcPWD&";"

set objCn = Server.CreateObject("ADODB.Connnection")

objCn.open strCn

Likadant som man gör när man använder DNS dvs.

Ska tillägga också att om du kör med Access 97 databaser så kanske du ska köra med JET.OLEDB.3.5 istället för 4.0

------------------
/Magnus aka Zaphod
www.designmodule.com.bi

[Redigerat av Zaphod den 12 jul 2000]

Medlem sedan maj 200067 inlägg
#3

Stort tack!

Mvh Razor

Medlem sedan maj 200067 inlägg
#4

Brådis!!

När jag testade med OLE DB så sket det sig när jag skulle sätta lösenordet:

pathDB = Server.MapPath("minDatabas.mdb")

pwdDB = "mittLosenord"

' Skapar kopplingssträngen.
strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & pathDB

' Skapar ett connectionobjekt.
Set conObj = Server.CreateObject("ADODB.Connection")

' Sätter lösenordet.
conObj.Properties("JET OLEDB:Database Password") = pwdDB 'Skiter sig på denna rad!!

' Öppnar databasen.
conObj.open strCon

Jag får felmeddelandet:
"ADO kunde inte hitta objektet i mängden som överensstämmer med det begärda namnet eller numret."

Det blir samma resultat oavsett om jag använder mig av OLEDB.3.5.1 eller OLEDB.4.0 och oavsett om jag har en Access 97 eller en Access 2000 databas.

Jag har version 4.00.3711.08 av ODBCJT32.DLL och kör med Access 2000, PWS, Win 98, IE 5.5.

Please give me a hand!!!!!!

Mvh Razor

[Redigerat av Razor den 27 jul 2000]

Medlem sedan maj 200067 inlägg
#5

Hittade en lösning på en underbar sida som jag delar med mig av neders i inlägget.

Så här skall det ju se ut:

pathDB = Server.MapPath("minDatabas.mdb")

pwdDB = "mittLosenord"

' Skapar kopplingssträngen.
strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & pathDB & ";" & " Jet OLEDB:Database Password=" & pwdDB

' Skapar ett connectionobjekt.
Set conObj = Server.CreateObject("ADODB.Connection")

' Öppnar databasen.
conObj.open strCon

Ok, sidan då: http://www.able-consulting.com/ado_conn.htm?f=ado_conn.htm#OLEDBProviderForMicrosoftJet

Mer info på: http://msdn.microsoft.com/library/psdk/dasdk/mdap2h43.htm

Mvh Razor

[Redigerat av Razor den 27 jul 2000]

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)