Avatar billede dk-jek Nybegynder
30. marts 2006 - 10:01 Der er 20 kommentarer og
1 løsning

You are not authorized to perform that operation - agent

Jeg har en agent i een database, som hver ½ time - for et udvalg af dokumenter - skal slå op (dblookup) i et view i en anden database og hente værdier til et felt.

Når jeg tvangskører agenten kører den fint og gør det den skal, men når agenten så skal køre "af sig selv" efter tidsplanen giver den kun "You are not authorized to perform that operation" som resultat for alle dokumenter.

Det hele foregår på den samme server, så hvorfor i alverden kan det ikke lade sig gøre??
Avatar billede jogii Nybegynder
30. marts 2006 - 10:12 #1
Afhængig af hvilken version af serveren du har, så kan der være forskellige problemer. Når du håndkører, så kører du agenten som dig selv, så er der vistnok ingen problem.

Ved baggrundsagenter er der mange ting at tage hensyn til:
* Hvis databasen du slår op i ligger på en anden server, så er det normalt ikke muligt at slå op i en baggrundsagent.
* Du skal have lov til at køre baggrundsagenter. Dette angives på sikkerhedsektionen på serverdokumentet.
* Hvis du har en R5 eller ældre server, så kører agenten "som server", mens den på en R6 eller nyeere kører "som dig". Det kan også have indflydelse, f.eks. vedr. opslag på databaser (angiveler i ACL).

oops, jeg så lige at alt ligger på samme server, så kan det være at først punkt ikke gælder, men så alligevel. Hvis du angiver at DBLookup skal slå op i databasen på ServerXYZ, så laver du et ulovligt serveropslag.

Du kan angive server-parameteren via funktionen
@DbName[1] (version 6>) eller
@Subset(@DbName; 1) for 5<)

Hvis agenten afvikles på en server, vil ovenstående parameter angive "", hvilket er ensbetydende med "lokal", altså samme som den aktuelle database.
Avatar billede dk-jek Nybegynder
30. marts 2006 - 11:06 #2
Serveren er ver. 5. og jege mindes ikke at have haft problemet før. I lookup har jeg brugt databasen unikke ID istedet for server:filenname.

ACL'en indeholder (standard) serveren som manager.

Kan hele miseren have noget med signering at gøre??

JEK
Avatar billede jogii Nybegynder
30. marts 2006 - 11:08 #3
Prøv at vise koden.
Avatar billede dk-jek Nybegynder
30. marts 2006 - 11:12 #4
Sidder lige og kæmper med undervisningsministeriets naturfagsprøve på nettet - der absolut kun kan køre på IE6.0 - så alle os firefox-bruger på skoler med OpenSource systemer er helt lost. Synd for eleverne og skolerne med godt for Bill Gates - når ministeriet på den måde yder indirekte offentlig støtte til et "monopol".

Vender tilbage når jer er tilbage på min domino-stol :-)

JEK
Avatar billede dk-jek Nybegynder
30. marts 2006 - 13:09 #5
FIELD Weekendplan:=@DbLookup( Notes : "NoCache" ; "C12570D2:004AEC26" ; "(Weekendplan_export)" ; @Name([CN];DominoBruger) ; 2 );SELECT @All
Avatar billede jogii Nybegynder
30. marts 2006 - 13:15 #6
Jeg ved ikke, men
  @DbLookup( Notes : "NoCache" ;
ville jeg erstatte med
  @DbLookup( "NoCache" ;
Men det burde ikke betyde noget...

Prøv at erstatte replikaid med fysisk filplacering ... bare for at debugge ... rart at vide om "noget" virker
Avatar billede dk-jek Nybegynder
30. marts 2006 - 13:17 #7
Fysisk placering - giver nyt (overraskende!!) svar "File does not exist"
Avatar billede jogii Nybegynder
30. marts 2006 - 13:23 #8
kode?

Jeg plejer at anvende noget der ligner følgende:


_server := @Subset( @DbName; 1);
_path := "her kommer stien, husk at angive \\ hvor du normalt vil angive \";
_view := "(Weekendplan_export)";
_key := @Name([CN];DominoBruger);
_look :=@DbLookup( "NoCache" ; _server : _path; _view ; _key ; 2 );
_debugerror1 := @Text(_look);
_debugerror2 := "";
FIELD Weekendplan := @If(@IsError(_look); _debugerror1; _look);
SELECT @All
Avatar billede jogii Nybegynder
30. marts 2006 - 13:24 #9
Det gør det nemmere at debugge.
Avatar billede dk-jek Nybegynder
30. marts 2006 - 13:28 #10
God idé den vil jeg huske - Gjort

resultat:

The necessary external database driver cannot be located
Avatar billede jogii Nybegynder
30. marts 2006 - 13:35 #11
undskyld, dblookup skal hedde:
@DbLookup( "" : "NoCache" ;
Avatar billede dk-jek Nybegynder
30. marts 2006 - 13:36 #12
Ja, den har jeg også fanget... nu kører den når jeg tvangskører den med nedenstående kode. Jeg vender lige tilbage når den har kørt om et par minutter...

_server := @Subset( @DbName; 1);
_path := "Data\\Intranet.nsf";
_view := "(Weekendplan_export)";
_key := @Name([CN];DominoBruger);
_look :=@DbLookup( Notes:"NoCache" ; _server : _path; _view ; _key ; 2 );
_debugerror1 := @Text(_look);
_debugerror2 := "";
FIELD Weekendplan := @If(@IsError(_look); _debugerror1; _look);
SELECT @All
Avatar billede dk-jek Nybegynder
30. marts 2006 - 13:48 #13
Så er vi tilbage ved udgangspunktet...den slår godt nok op men bliver afvist som uaftoriseret...
Avatar billede jogii Nybegynder
30. marts 2006 - 14:10 #14
Så check serverdokumentet og sikkerhed. Står der noget om dig og afvikling af baggrundsagenter?

Hvad med intranet.nsf og ACL, hvad er ACL sat til for Serveren? Brugertypen?
Avatar billede dk-jek Nybegynder
30. marts 2006 - 15:09 #15
Pas - det er som det skal være...

Jeg kan godt køre agenten internt i den base jeg forsøger at læse i...men åbenbart ikke på tværs..
Avatar billede jogii Nybegynder
30. marts 2006 - 18:20 #16
Serveren må evt. ikke stå som brugertype "Server", men "Unspecified". Hvis agenten kører, så vil den blive opfattet som en "klient" og så vil serveren måske blive afvist pga. uoverenstemmelse i brugertypen.

Prøv at sætte Default rettigheden til læser. Så kan vi se om det er ACL der driller.
Avatar billede dk-jek Nybegynder
30. marts 2006 - 19:20 #17
Bingo!!

Jeg havde oprindeligt sat Default rettigheder til "no access" med Reader kører den som den skal!!

Jeg er ikke nogen haj på det her område...men jeg forstår ikke helt at serveren - som jo har manager-rettigheder - tilsyneladende ikke kan over-rule default-adgangen.

Basen vi kigger i bruges som ståsted for vores intranet (www.pepost.dk) og jeg mente egentlig det var mest klogt at begrænse adgangen mest muligt, men jeg kan godt nu jeg bevæger mig lidt ned i materien, se at det ikke rigtig giver mening af have en default adgang der er skrappere end den der er givet til anonymous.
Avatar billede jogii Nybegynder
30. marts 2006 - 23:09 #18
Det skyldes vistnok at du har sat serverens brugertype i ACL til Server. Det betyder, at den kun kan tilgå databasen, hvis den f.eks. ligger på en anden server, via replikering etc, dvs ved deciderede serverhandlinger. Når du laver en agent, så fungerer agenten som en klient/person.

I version 6> har de ændret afviklingen af baggrundsagenter, så de kører med identiteten af den person som sidst har rettet i agenten. Dvs at agenter, som du afvikler manuelt, sandsynligvis kører præcis på samme måde i baggrunden på serveren.

Det der med brugertypen blev indført i version 4 tror jeg, for at undgå at personer kunne sætte sig ud ved serveren og tilgå databaser lokalt, og på den måde snige sig ind i dokumenter og databaser som de normalt ikke har adgang til. Så ved at sætte brugertypen i ACL til "Server" så kan man sikre at det kun er serveroperationer som kommer igennem. Hvis man som serverklient tilgår databasen så findes man ikke i ACL (pga manglende match af navn&brugertype). Hvis du sætter serverens brugertype i ACL til "Unspecified", så vil den opfattes som et wildcard *, altså navn&*  (hvis du forsår hvad jeg mener). Når der ikke er match, så går man tilbage til DEFAULT. Derfor virker det når du sætter DEFAULT til READER.

Men på en måde har du ret i, at det ikke kan betale sig at have en DEFAULT der er mindre end Anonymous.
Avatar billede jogii Nybegynder
30. marts 2006 - 23:27 #19
Ja så fik jeg da set på jeres hjemmeside og fandt da også dig.
Avatar billede dk-jek Nybegynder
31. marts 2006 - 07:22 #20
Så skal du vel have nogen point - jeg har fået løst problemet. Og så må jeg se at få råd til en opgradering snart..
Avatar billede jogii Nybegynder
31. marts 2006 - 11:16 #21
Du kan altså løse det ved at ændre "Brugertypen" fra "Server" til "Unspecified" i databasens ACL-registrering for servernavnet.
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
Computerworld tilbyder specialiserede kurser i database-management

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