Autor Thema: ACL mit LS auslesen  (Gelesen 4801 mal)

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
ACL mit LS auslesen
« am: 24.08.07 - 12:20:41 »
Hallo zusammen,

ich versuche gerade per LS alle DB-ACL auf dem Server nach einer bestimmten Gruppe abzufragen.
Möchte wissen, ob diese Gruppe in der ACL vorhanden ist. Auf den Catalog kann ich mich leider nicht 100%tig verlassen. Bekomme aber immer den Fehler

Fehler #4063 — Database Server!!admin4.nsf has not been opened yet

Wie kann ich das umgehen ?

#########################################


Dim s As New NotesSession   
   On Error Goto errHandler
   
   Dim dbdir As New NotesDbDirectory("hier ist der Server")
   Dim db As NotesDatabase
   Set db = dbdir.GetFirstDatabase(DATABASE)
   
   While Not (db Is Nothing)
      
'ACL auslesen
      Dim protokoll As New NotesLog("GruppenCheck : ")
      protokolldatei="d:\temp\GruppenCheck.txt"
      Call protokoll.OpenFileLog(protokolldatei)
      
      Dim acl As NotesACL
      Dim entry As NotesACLEntry
      Set acl = db.ACL
      Set entry = acl.GetEntry( "#MA-HO" )
      If Not ( entry Is Nothing ) Then
         Call protokoll.LogAction(db.Title)
         Call protokoll.LogAction(entry.Level)
         Call protokoll.LogAction("##############################")
      End If
weiter:
      Call protokoll.close
      Set db = dbdir.GetNextDatabase
   Wend
   
   'vorbereitung der  Mail
   Set mdoc = New NotesDocument(db)   
   mdoc.Form = "Memo"   
   mdoc.Subject = "Agent ACL Check"
   
   Dim object As NotesEmbeddedObject
   Dim rtitem As NotesRichTextItem
   Set rtitem = New NotesRichTextItem( mdoc, "Body" )
   
   Call rtitem.AppendText (" Hallo, anbei der aktuelle Auswertung : ")
   Call rtitem.AddNewline (4)   
   
   Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", protokolldatei)
   
   Call mdoc.Send( True, "xy")
   
   
errHandler:
   Call protokoll.LogAction("Fehler #" & Err & " — " & Error$ & " (Zeile: " & Erl & ")")
   Call protokoll.close
   Resume  weiter

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: ACL mit LS auslesen
« Antwort #1 am: 24.08.07 - 12:28:46 »
Warum kannst du dich auf den Katalog nicht verlassen? Weil nicht alle Datenbanken gezeigt werden? Wenn es der Grund ist, dann kann man die Ansichten so anpassen, dass alle Datenbanken angezeigt werden. Enthalten sind nämlich immer alle Datenbanken, es werden nur die ausgeblendet, die einen bestimmten Haken in den DB-Eigenschaften gesetzt haben. Wenn es das ist, bemüh mal die Forumssuche, dann findest du hierfür eine Lösung...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: ACL mit LS auslesen
« Antwort #2 am: 24.08.07 - 12:29:41 »
Ändere folgende Zeile:
Dim db as NotesDatabase
in
Dim db as New NotesDatabase ("", "")

Bernhard

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Re: ACL mit LS auslesen
« Antwort #3 am: 24.08.07 - 13:39:22 »


@Mad:
Im zweiten Schritt wollte ich bei den DB´s in denen die ACL gesetzt wurde eine
weitere Gruppe hinzufügen. Anspnsten hats Du Recht mit der Ansicht, gute Idee.

@Bernhard: Die Änderung hat leider keine Besserung gebracht !

Darf die die ACL im laufenden Betrieb nich abfragen ??? Kann ich mir nicht vorstellen !!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ACL mit LS auslesen
« Antwort #4 am: 24.08.07 - 13:49:46 »
Code
Set db = dbdir.GetFirstDatabase(DATABASE)
Call db.Open( "", "" )
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: ACL mit LS auslesen
« Antwort #5 am: 24.08.07 - 13:55:53 »
ein open geht aber nur, wenn derjenige, der die Datenbank versucht zu öffnen, auch wirklich die Berechtigung hat, auf die DB zuzugreifen. Und da liegt in meinen Augen der Hase im Pfeffer.

Also entweder muss man den Agenten mit dem Server laufen lassen (Run on behalf oder per signieren), oder man muss dafür sorgen, dass der User, der den Agent ausführt Rechte auf ALLE Datenbanken auf dem Server hat (was in den meisten Fällen problematisch werden dürfte).

Trotz allem stellt sich auch mir die Frage, weshalb man dem catalog wohl nicht vertrauen kann ?
Die Ansicht ist ja schnell umgestellt, so dass sie ALLES anzeigt (unabhängig vom Flag in den Datenbank- Eigenschaften)...

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ACL mit LS auslesen
« Antwort #6 am: 24.08.07 - 13:57:02 »
ein open geht aber nur, wenn derjenige, der die Datenbank versucht zu öffnen, auch wirklich die Berechtigung hat, auf die DB zuzugreifen. Und da liegt in meinen Augen der Hase im Pfeffer.
Er bekommt aber den Fehler
Code
Fehler #4063 — Database Server!!admin4.nsf has not been opened yet
und nicht irgend einen Zugriffsfehler.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: ACL mit LS auslesen
« Antwort #7 am: 24.08.07 - 13:59:05 »
Ganz reicht das noch nicht:
Set db = dbdir.GetFirstDatabase (DATABASE)
   While Not db Is Nothing
      Call db.Open (db.Server, db.FilePath)

Wichtig ist die Abfrage, ob das NotesDatabase-Object überhaupt instantiiert werden konnte: Falls der Signer des Codes da keinen Zugriff hat, wird ein Fehler geworfen und die Routine beendet.

Bernhard

PS: Selbstverstädnlich kann man auch Datenbanken, die im Zugriff sind, ACL-mässig auslesen und verändern!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: ACL mit LS auslesen
« Antwort #8 am: 24.08.07 - 14:05:35 »
du hast natürlich recht @m3... Dein "open" hilft bei der ersten Fehlermeldung natürlich, aber als nächstes wäre sie über die fehlenden Berechtigungen gestolpert. Deshalb dachte ich, dass ich das gleich mit erwähne...

Ach ja: Die Meldung "Has not been Opened yet" kann auch kommen, wenn man ein "Open" probiert, und das aufgrund fehlender Berechtigungen nicht darf...

Mal ganz abgesehen davon ist das "Errorhandling" (obwohl schon mal ein Fortschritt ist, dass überhaupt eins betrieben wird) ja nicht wirklich... prickeln...

Gruß
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Re: ACL mit LS auslesen
« Antwort #9 am: 24.08.07 - 14:09:42 »
db.open hat mir schonmal weitergeholfen
Ich habe die Rechte als Admin ! Und das ganze iste ine einmalige Sache um eine bestimmte Gruppe
hinzuzufügen !

Vielen dank für eure Info !

Driri

  • Gast
Re: ACL mit LS auslesen
« Antwort #10 am: 24.08.07 - 14:28:46 »
Ich bin ja eher der Admin-Laie, aber warum markierst Du Dir im Adminclient nicht einfach die Datenbanken und fügst die Gruppe über das Kontextmenü "Zugriffskontrolliste" -> "Verwalten" hinzu ?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: ACL mit LS auslesen
« Antwort #11 am: 24.08.07 - 16:11:17 »
Evtl. vorher mal prüfen, ob die DB  überhaupt offen ist....
if db.isopen ????

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz