24. maj 2006 - 11:20Der 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
...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".
...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.
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?
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.
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
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?
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
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.