Avatar billede l_domino_l Nybegynder
24. maj 2006 - 11:20 Der er 19 kommentarer og
1 løsning

Hvad gør jeg gal?

Jeg har en asp fil, som en anden har lavet, og nu hænger jeg på at rette den til...

Men den melder fejl heletiden... hvorfor?

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.

Hvad betyder det??

Det er her i min asp fil:
strSQL = "UPDATE Phonelist set EmployeeName = '"& request.form("PHONEName") & "', EmployeeIni = '"& request.form("PHONEIni") & "', EmployeeShort = '"& request.form("PHONELocal") & "', EmployeeCell = '"& request.form("PHONEPhone") & "', EmployeeFax = '"& request.form("PHONEFax") & "', EmployeeEmail = '"& request.form("PHONEEmail") & "', EmployeeDepartment = '"& request.form("EmployeeDepartment") & "', CompanyID = '"& request.form("CompanyID") & "' WHERE EmployeeID = "& iRecordId & ""

set cnnDBEdit = Server.CreateObject("ADODB.Connection")
cnnDBEdit.Open CONN_STRING

cnnDBEdit.Execute strSQL, adAffectAll, adCmdText Or adExecuteNoRecords

cnnDBEdit.Close
Set cnnDBEdit = Nothing
Avatar billede softspot Forsker
24. maj 2006 - 11:24 #1
Muligvis betyder det at du ikke har skriverettigheder til den folder som databasen ligger i...
Avatar billede softspot Forsker
24. maj 2006 - 11:26 #2
...og du skal forstås på den måde at IUSR_XXX (altså IIS) ikke har ret til at skrive i den pågældende folder. Dette kan (efter min bedste overbevisning) rettes i IIS-admin for den folder din database ligger i ved at sætte kryds ud for "write".
Avatar billede l_domino_l Nybegynder
24. maj 2006 - 11:27 #3
Det er et intranet som ligger på en lokal server. Og jeg kan godt gå direkte ind i databasen slette og oprette. Men bare ikke fra ASP siderne....
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:27 #4
ja, samme problem som jeg lige har haft. IIS har ikke adgang til din Access database.
Avatar billede softspot Forsker
24. maj 2006 - 11:28 #5
Det er fordi du benytter forskellige brugere når du retter direkte i databasen med Access og når du gør det fra en webside (som indikeret ovenfor).
Avatar billede l_domino_l Nybegynder
24. maj 2006 - 11:32 #6
Ok... og hvordan klarer jeg så det?
Avatar billede softspot Forsker
24. maj 2006 - 11:50 #7
det er beskrevet ovenfor i post 24/05-2006 11:26:15
Avatar billede softspot Forsker
24. maj 2006 - 11:53 #8
...og det er altså (i IID-admin) at åbne egenskaber for den folder hvori din database ligger og tildele skriverettigheder. Hvis din database ligger i en folder som ikke ligger under roden af dit website, så skal du bruger stifinderen og tildele skriverettigheder til IUSR_XXX (hvor XXX er maskinens navn) for den folder hvor din database ligger.
Avatar billede l_domino_l Nybegynder
24. maj 2006 - 11:54 #9
Ups--- den så jeg ikke lige
Avatar billede morhan Novice
24. maj 2006 - 12:44 #10
Det er næppe en god ide at tildele skrive rettigheder for mappen i IIS manageren. Det giver brugere af sitet ret til at skrive til mappen.

Det er kun NTFS rettigheder der skal sættes, det affekter kun asp scriptet på serveren
Avatar billede l_domino_l Nybegynder
24. maj 2006 - 12:50 #11
Ok... hvorfinder jeg de rettigheder henne?
Avatar billede softspot Forsker
24. maj 2006 - 12:55 #12
morhan >> du har givetvis ret, men det er et intranet og desuden er det vel stadig IIS der skal skrive data (herunder filer) til folderen og så skal der vel gives en eller anden mulighed fra sitets side til at skrive filer... eller hvad?
Avatar billede softspot Forsker
24. maj 2006 - 12:56 #13
Under alle omstændigheder er det en dårlig idé (ikke så kritisk i dette tilfælde, hvor det er intranet) at lægge sin database i en folder som ligger under selve websitets root-folder, så der vil vel under alle omstændigheder være et sikkerhedsproblem.
Avatar billede morhan Novice
24. maj 2006 - 14:27 #14
read/write, som man sætter i IIS manageren, er de rettigheder brugeren skal have, når han tilgår sitet. Under normale omstændigheder skal han kun have read. Det har ikke betydning for scriptet.


Du sætter NTFS rettigheder ved at tage egenskaber på .mdb filen > sikkerhed
her tilføjer du IUSR kontoen, og giver den tilladelse til at skrive
Avatar billede softspot Forsker
24. maj 2006 - 15:45 #15
morhan >> Og hvem er det lige der repræsenterer brugeren på webserveren...? Er det ikke IUSR... hvis det er, så gør det vel ingen forskel om man sætter skriverettigheden via IIS-manageren eller i filsystemet, eller er der bare noget jeg har misforstået?
Avatar billede morhan Novice
24. maj 2006 - 15:51 #16
Jo, den anonyme bruger får adgang gennem IUSR. Men hvis du i IIS giver adgang til write, så kan bruge benytte HTTP kommandoer som PUT og DELETE. Det kan være meget uheldigt, hvis IUSR også har NTFS adgang til at skrive i mappen

Ved kun at give read, kan brugeren kun ændre i filer på serveren via et asp script
Avatar billede softspot Forsker
24. maj 2006 - 15:55 #17
OK, så giver det mening IKKE at give skriverettigheder via IIS-manageren :)
Avatar billede l_domino_l Nybegynder
25. maj 2006 - 12:00 #18
Takker

Svar?
Avatar billede softspot Forsker
25. maj 2006 - 18:45 #19
Hvis du kan bruge et herfra... :)
Avatar billede softspot Forsker
30. maj 2006 - 09:10 #20
Tak for point :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester