Autor Thema: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld  (Gelesen 4795 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« am: 21.11.06 - 16:23:12 »
Hallo,

Wenn man direkt in der db ein doc erstellt und dabei den Parameter LOCKDOCUMENTSGENERAL auf NO setzt dann wird natürlich nicht der Wert aus dem Parameter LockDocumentsTicketAuthors in das AAuthors Feld übernommen.
Nur passiert dann beim Speichern folgender Fehler:

Sie können kein Doc aktualisieren für die sie nicht als Author eingetragen sind.

Gibt es da eine Lösung für ein leeres Authorfeld?

Es müss jetzt nicht speziell auf die Helpdesk db eingegangen werden (war nur Beispiel weil es sehr schon realisiert ist) es reicht eine allgemeine Antwort wie da eine Lösung aussehen könnte?

danke robert

------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #1 am: 21.11.06 - 19:00:58 »
Aber Leserfelder sind gesetzt?

Editor Access auf die DB geben.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #2 am: 21.11.06 - 20:54:05 »
Hallo Thomas,

Lesefelder verhalten sich genau so.
Das Problem ist ja, dass ich Author und Lesefelder haben möchte aber eben nur dann wenn LOCKDOCUMENTSGENERAL = YES ist. Sonst eben keine Zugriffsbeschränkung.

Editor- Recht ist nicht so gewünscht. Denn dann kann ja jeder doc's von anderen Personen lesen.

Anders ist das nicht machbar?

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #3 am: 21.11.06 - 21:50:44 »
Also noch mal. Das Problem ist nicht !!HELP!! bezogen. oder?

Du willst bezogen auf einzelne Dokumente abhängig von was auch immer Lese bzw. Autorenrechte einbauen?

Naja dann schau dir mal die Berechnungen in !!HELP!! etwas genauer an. Das haben wir über Formeln mit abgefangen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #4 am: 21.11.06 - 21:54:36 »
Ach ja. WEn ndu wissen willst was wir gemacht haben um da auch Formeln mit abzubilden, les dir einfach in der 1.5.2 Schablone die Beschreibung bie LockdocumentsConfigReaders durch. Da ist das auch mit der Formel erklärt.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #5 am: 21.11.06 - 21:59:02 »
Udn noch etwas, das steht leider nicht in der Beschreibung. Eine Formel muss immer einen Wert zurückgeben. Und wenn das einfach ein String mit einem Leerzeichen ist. Und wenn mann dann die letzte Zeile der Formel um ein Trim ergänzt, so wie hier:
@Trim(@Unique(@Explode(_StringConcat;"~~")))
Dann bleibt bei einer nicht zutreffenden Formel auch kein Eintrag für die Lese oder Autorenrechte übrig und das Dokument ist frei zugänglich.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #6 am: 22.11.06 - 07:08:27 »
Hallo Thomas,

Hab ich mir genauer angesehen.
Ich hab aber genau diese Situation: Ein leeres Author und ein leeres Lese-Feld und dann bekomm ich genau diesen Fehler wie oben beschrieben:
Inhalt Felder: ""

Sie können kein Doc aktualisieren für die sie nicht als Author eingetragen sind!


Kann das gehen? Es steht ja in der Hilfe:

Author   Edit the documents where there is an Authors field in the document and the user is specified in the Authors field.
   Read all documents unless there is a Readers field in the form. If there is a Readers field, the Author must be listed to be able to read documents.

D.h: soviel wie: Wenn nicht angegeben dann kein Zugriff. Oder?

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #7 am: 22.11.06 - 08:16:53 »
Les dir Regel 2 und 7 durch. Die erklären dir das.

Ich hab irgendwann mal das hier geschrieben was Leser und Autorenfelder betrifft:

Die 10 Regeln die Leser und Autoren Felder betreffen

Regel #1 - Die ACL hat immer das letzte Wort

Die Zugriffskontroll Liste (Access Control List (ACL)) bestimmt immer welchen Art eines Zugriffes jemand auf eine Datenbank hat. Alle folgenden Regeln greifen zu guter Letzt auf diese Regel zurück. Wenn jemand in einer Datenbank nur "Einlieferer" Rechte hat, dann kann er keine Dokumente lesen, egal was sonst noch eingestellt wird. Diesen Benutzer in ein Leser oder Autoren Feld einzutragen wird keine Auswirkungen haben.

Regel #2 - Autoren Felder können keine Rechte verleihen die vorher nicht existierten

Ein Autoren Feld kann den Zugang zu einem Dokument nicht einschränken. Wenn ein Benutzer Editorenrechte (oder höhere Rechte) in der Datenbank hat, dann hat ein Autoren Feld keine Auswirkungen für diesen Benutzer, was wieder auf Regel #1 zurückzuführen ist. Genau das gleiche gilt, wenn ein Benutzer nur Leser oder ein noch niedrigeres Zugriffsrecht hat. Dann hat ein Autoren Feld wieder keinen Einfluß, weil die ACL sagt, das das einzige was dieser Benutzer tun kann lesen ist. Als ganzes bedeutet das ,das ein Autoren Feld nur dann anwendbar ist, wenn der fragliche Benutzer Autoren Rechte in der Datenbank hat.

Regel #3 - Leser Felder begrenzen den Zugriff

Ein Leser Feld begrenzt den Zugang immer und es hängt überhaupt nicht von den Zugriffsrechten des Benutzers ab. Wenn man ein Leser Feld in ein Dokument einbaut und es mit einem Wert gefüllt ist, z.B. nur mit Ihrem Namen, dann haben Sie und nur Sie die Möglichkeit dieses Dokument zu sehen, vollkommen egal welche Rechte der andere hat.

Regel #4 - Leser und Autoren Felder sollten immer den vollständigen qualifizierten Benutzernamen enthalten

Wenn sie Benutzer Namen in Leser oder Autoren Felder eintragen, sollten diese immer den qualifizierten Namen enthalten. Das bedeutet, das das "CN=" und alle anderen Bestandteile wie UO ... im Benutzer Namen sichtbar sein müssen. Angezeigt wird der Benutzername in der "Abbreviate" Form, gespeichert wird der Name in der "Canonicalize" Form.
Dieses ist zu bedenken, falls per Agent Namensfelder gesetzt werden.

Falls nur der Common Name eingetragen ist, wird der Benutzer nur dann eindeutig erkannt, falls der Benutzer und der aktuelle Server von der gleichen Zulassungsstelle stammen.

Regel #5 - Rollen können in Leser und Autoren Feldern benutzt werden

Um eine Rolle in diesen beiden Feldtypen verwenden zu können, muß der Name der Rolle in eckige Klammern gesetzt werden. So kann man zum Beispiel indem man "[administrator]" in ein Leser Feld einträgt verhindern, das irgendwer der nicht diese in der ACL eingetragene Rolle hat dieses Dokument lesen kann.

Regel #6 - Wenn ein Leser Feld leer ist, dann kann jeder das Dokument lesen

Nur weil ein Leser Feld in einem Dokument existiert, heißt das noch lange nicht, das jedes einzelne Dokument das diese Maske benutzt Lese Sicherheit eingebaut hat. Da Leser Felder den Zugang begrenzen, bedeutet ein leerer Wert, das der "Zugriff für niemand verboten" ist. Oder anders ausgedrückt. "jeder darf zugreifen".

Regel #7 - Wenn ein Autoren Feld leer ist, dann kann niemand mit Autoren Rechten in der Datenbank dieses Dokument bearbeiten.

Da Autoren Felder den Zugriff auf ein Dokument garantieren, bedeutet ein leerer Wert, "hier bekommt keiner Zugriff" oder "niemand der nur Autoren Rechte hat darf hier ändern". Benutzer mit Editoren oder höheren Rechten sind dann aber immer noch in der Lage diese Dokumente zu bearbeiten. Siehe Regel #1.

Regel #8 - Wenn es mehrere Sicherheits Felder (entweder Leser oder Autor) in einem Dokument gibt, dann wird im Hintergrund aus allen Werten in allen Feldern ein "virtuelles" Sicherheits Feld gebildet, das für die Zugriffskontrolle genutzt wird.

Das muß man jetzt etwas ausführlicher erklären. Wenn man z.B. zwei Leser Felder in seiner Maske hat, von denen eines den Wert "[Administrator]" und das andere den Wert "CN=Amadeus Tester/O=Testfirma" hat, dann ergeben diese beiden Felder zusammen, das alle die für diese Datenbank die Rolle "[Administrator]" haben und außerdem der Benutzer Amadeus Tester dieses Dokument in einer Ansicht sehen können.

Um dieses Beispiel weiterzuentwickeln fügen wir man jetzt ein weiteres Leser Feld in das Dokument ein lassen dieses Feld aber leer. Normalerweise bedeutet ein leeres Leser Feld, das jeder das Dokument lesen kann, nur das in diesem Fall noch andere Leser Felder in dem Dokument sind, so das nicht ausschließlich dieses neue Feld zur Kontrolle benutzt wird. Was jetzt passiert ist, das alle drei Leser Felder kombiniert werden um den Zugriff auf dieses Dokument zu regeln. Wenn alle drei Felder ein "NULL" Wert (kein Eintrag) ergeben, dann kann jeder das Dokument lesen. Da die anderen beiden Felder aber nicht leer sind, ändert das hinzufügen des dritten Feldes ohne Eintrag nichts an den Zugriffsrechten. Das Dokument kann immer noch nur von unserem Benutzer Amadeus Tester, bzw. von allen denen die Rolle "[Administrator]" in der Datenbank zugewiesen wurde gelesen werden.

Bei Autoren Felder ist es der gleiche Vorgang. Mehrere Autoren Felder verbinden sich zu einem übergeordneten "virtuellen" Autoren Feld. Wenn jemand (mit Autoren Rechten in der ACL, um noch einmal kurz auf Regel #1 hinzuweisen) in mindestens einem dieser Felder eingetragen ist, dann ist er in der Lage diese Dokument zu verändern. Es spielt auch hier keine Rolle ob ein Autoren Feld leer ist, während die anderen gefüllt sind.

Regel #9 - Wenn es sowohl Leser als auch Autoren Felder in einem Dokument gibt, dann sind die Autoren Felder auch Leser Felder

Diese Regel scheint auf den ersten Blick keinen Sinn zu machen. Also brauchen wir ein Beispiel. Nehmen wir an, daß dieses Dokument ein Leser Feld hat in das die "[Administrator]" Rolle eingetragen ist. Außerdem hat das Dokument ein Autoren Feld mit "CN=Amadeus Tester/O=Testfirma". Weil Amadeus Tester im Autoren Feld eingetragen ist, wird er automatisch auch in der Lage sein das Dokument in den entsprechenden Ansichten zu sehen. Er muß also nicht zusätzlich noch im Leserfeld eingetragen werden.  Das geht auf Regel #2 zurück. Das Leser Feld hat den Zugriff gelöscht, Das Autoren Feld ihn aber wieder garantiert.

Was ich zeigen will ist ,das hier Autoren Felder einen Unterschied für Benutzer machen können, deren Zugriffsrechte mindestens Editor oder höher sind. Wenn Amadeus Tester der Entwickler dieser Datenbank ist, dann kommt das Autoren Feld ins Spiel und erlaubt es ihm die Dokumente in Ansichten zu sehen, obwohl er eigentlich kein Leser ist.

Regel #10 - Leser Felder werden während der Replikation angewandt

Diese Funktionalität wird häufig übersehen. Dabei ist sie wirklich wichtig. Nehmen wir einmal an wir haben eine Datenbank mit zehn Dokumenten. Sie sind nur in zwei dieser Dokumente eingetragen. Sie können nur diese zwei Datenbanken sehen aber wenn sie in die Eigenschaften der Datenbank gehen, dann sehen sie das es zehn Dokumente gibt. Sie können auf dem Server keine Ansicht erstellen, aber sie wollen alle Dokumente sehen. Also erstellen sie eine lokalen Replik der Datenbank, bauen dort die Ansicht ein die alle Dokumente zeigen soll und öffnen die Ansicht. Sie können aber immer noch nur diese beiden Dokumente sehen. Das passiert nicht, weil die Leser Felder auf ihre Lokale Replik angewendet werden. Sie sehen tatsächlich alles. Wenn sie auf die Datenbank Eigenschaften der Lokalen Replik gehen werden sie feststellen, das sie tatsächlich nur zwei Dokumente in dieser Datenbank haben. Domino/Notes läßt es nicht zu, das sie Dokumente zu denen sie keinen Zugriff haben lokal replizieren.

In einer ähnlichen Art, kann man z.B. eine manuelle Replikation zwischen zwei Servern starten. Wenn es Dokumente gibt die sich geändert haben, oder Sie sehen die Änderungen nicht, dann wurden diese Änderungen zwischen den beiden Servern nicht repliziert. Eine Sache die viele Entwickler gerne vergessen ist, das in eine Datenbank immer eine Rolle mit eingebaut werden sollte die in ein Leser Feld eingetragen wird um "LocalDomainServers" das Recht zu geben Dokumente zu replizieren
.
Verschiedene Beobachtungen und Tipps

Geben Sie sich selbst Zugriff

Wenn Sie eine Anwendung entwickeln bei der sie Leser und/oder Autoren Felder benutzen werden, dann gibt es einige Dinge die sie beachten sollten.

Jedes einzelne Dokument, das ein Leser Feld hat das nicht leer ist, sollte automatisch auch ein zusätzliches Leserfeld enthalten in dem eine definierte Rolle z.B. "[Administrator]" eingetragen wird. Wenn alle vorhandenen Leser Felder leer sind, dann kann jeder das Dokument sehen.  Aber wenn eines der Leserfelder gefüllt ist, dann können nur noch die Benutzer, die in diesen Feldern eingetragen wurden diese Dokumente sehen. Es ist schon häufiger passiert das ein Entwickler nachträglich an einem Dokument in einer Datenbank arbeiten wollte weil lein Benutzer irgendwelche Fragen oder Probleme hatte. Er konnte das aber nicht, weil er keinen Zugriff auf die entsprechenden Dokumente hatte. Deswegen konnte er nichts tun um Unterstützung für dieses Dokument zu leisten. Oder es gibt in einer Datenbank ein Leserfeld in dem exakt ein Benutzer eingetragen ist und dieser Benutzer verläßt das Unternehmen. Das sind schwerwiegende Gründe warum man immer ein "Administrator" Leser Feld mit einer entsprechenden Rolle mit einbauen sollte.

Normalerweise macht man das auf die folgende Art und Weise:
Man erstellt ein verstecktes "AdminReaders" Feld ganz am Ende der Maske. Das Feld ist vom Typ Leser und Berechnet. In der Berechnung des Feldes wird geprüft, ob die Zusammenfassung aller anderen Leser Felder einen Wert enthält oder nicht. Wenn ein Wert eingetragen ist, dann wird die Rolle eingetragen. Zum Beispiel:
@If(@Elements(Readers1 : Readers2 : Readers3) != 0; "[Admin]"; "")

Sie werden sich fragen, was für den Fall passieren soll, das die Anwendung "wirklich" vertraulich ist, und wenn die Eigentümer der Anwendung noch nicht einmal den Support in die Dokumente schauen lassen wollen. In diesem Fall wird das AdminReaders Feld immer noch eingebaut. Nur die zum Zugriff benötigte Rolle wird nicht in der ACL eingetragen. Auf diese Weise sieht der Entwickler der die Anwendung pflegt die Dokumente nicht. In der Bedienungs Anleitung der Datenbank wird die Rolle aber genannt. Auf diese Art kann der Entwickler wenn er Zugriff benötigt (und glauben sie mir das ist keine Frage des ob sondern des wann) zum Datenbank Verantwortlichen gehen und ihm sagen, das er diese Rolle in die Datenbank eintragen und ihm den entsprechenden Zugriff geben soll. Nach Beendigung der Pflegearbeiten kann dem Entwickler die Rolle wieder entzogen werden. Wichtig ist, das diese "Hintertür" aber immer da ist wenn sie denn einmal gebraucht wird.

Wenn man für die Öffentliche Hand oder eine Firma arbeitet, dann kann der obige Absatz einen dazu bringen sich wie ein Wurm zu krümmen, weil man "Hintertürchen" in einer Anwendung nicht sehen will. Aber wenn der Entwickler der die Anwendung unterstützt keine Manager Rechte auf der Datenbank hat, dann muß er erst zu dem jeweils Verantwortlichen gehen um diesen Zugriff zu erhalten.

Server Zugriff gestatten

Wenn die Datenbank zwischen unterschiedlichen Servern repliziert werden soll, dann sollte ein anderes zusätzliches Leser Feld eingebaut werden das eine "[Replikator]" Rolle enthält (wenn notwendig). Hier muß man sicherstellen, das "LocalDomainServers" diese Rolle haben. Dieser Eintrag erlaubt es den Servern alle Dokumente zu sehen und zu replizieren.

Leser Felder und Ansichten

Diese Eigenschaft von Leser Feldern wird von Entwicklern häufig übersehen und sie kann die Datenbank erheblich verlangsamen. Um das Problem zu verstehen braucht man ein wenig Hintergrundwissen über die Art wie der Notes Client mit dem Domino Server zusammenarbeitet. Was jetzt kommt ist ein extrem vereinfachtes Beispiel:

Wenn eine Ansicht geöffnet wird dann sagt der Client zum Server, Ok Junge gibt doch bitte mal den ersten Teil des Ansichts Indexes. Der ganze Index kann ziemlich groß sein, so das zunächst einmal nur ein Brocken des Indexes gesendet wird um die Geschwindigkeit zu erhöhen. Das kann man sehen und nachvollziehen wenn man eine große Ansicht öffnet, das oberste Dokument markiert und dann mit der Pfeil-unten Taste nach unten scrollt. Irgendwann wird es eine Pause geben. Das ist der Zeitpunkt an dem der Server den nächsten Teil des Indexes zum Client schickt.

Jetzt hat der Server den ersten Teil des Ansichtsindex gesendet. Der Client sucht sich jetzt die Dokumente die er anzeigen darf und zeigt diese. Wenn das was er anzeigen darf nicht genug ist um auf den Bildschirm zu passen, dann fordert der Client den Server auf den nächsten Teil des Index zu schicken. Wieder sucht sich der Client die Dokumente die er darstellen kann. Dieser Ablauf wiederholt sich bis der Bildschirm komplett aufgefüllt worden ist.

Jetzt stellen sie sich eine Ansicht mit 100.000 Dokumenten vor die alle Leser Felder haben und von denen sich nur einen verschwindend geringen Bruchteil, sagen wir 5 Stück lesen dürfen. Der Client und der Server müssen den gesamten Index bis zum Ende durchgehen nur um herauszufinden das es trotzdem nicht genug Dokumente sind um den Bildschirm zu füllen. Erst dann werden sie auf dem Bildschirm angezeigt. Das macht die Ansicht wirklich langsam.

Um dieser Falle aus dem Weg zu gehen sollten Sie es vermeiden Ansichten zu benutzen bei denen der Benutzer eine so geringe Anzahl von Dokumenten sehen wird wenn es irgendwie möglich ist. Manchmal mag das aufgrund der Anforderung an die Anwendung unmöglich sein. dann sollten Sie zumindest darauf hinweisen, damit sie später, wenn sich die Anwender über die mangelnde Performance beschweren "ich hab es euch ja gesagt" sagen können.

ein letzter Trick

Wenn man die Regel #9 benutzt (Autoren Felder sind auch Leser Felder) kann das sehr nützlich sein. Nehmen wir einmal an das sie eine Anwendung entwickelt haben bei der die Leute Dokumente erstellen können, aber nur die Dokumente sehen sollen die sie auch erstellt haben. Das kann man sehr einfach erreichen indem jeder Autoren Zugriff in der ACL auf die Datenbank bekommt. Die Benutzer die die entsprechenden Dokumente bearbeiten sollen werden in die entsprechenden Autoren Felder eingetragen. Anschließend wird ein Leser Feld erstellt, das einen Wert enthält der keinen Benutzernamen darstellt. Weil das Leser Feld nicht leer ist, ist das Dokument nicht für jeden zu sehen, Es ist auf die Personen beschränkt, die in dem Leser Feld eingetragen sind (erinnern sie sich, hier steht kein echter Name). Aber es ist jetzt auch für alle Benutzer sichtbar, deren Namen in den Autoren Feldern stehen. Und da die Benutzer nur Autoren Rechte in der Datenbank haben können Sie, auch dann wenn sie durch irgendeinen dummen Zufall auch andere Dokumente sehen würden, diese Dokumente nicht ändern, weil sie in deren Autoren Feld nicht eingetragen sind.

Zusammenfassung

Das Sicherheits Modell von Notes ist eines der besten in der IT und es ist extrem verläßlich und sicher. Wenn, bezogen auf die eingebaute Sicherheit von Leser und Autorenfeldern, die oben genannten Regeln angewendet werden wenn man eine Datenbank erstellt, sollte das helfen sichere Datenbanken zu entwickeln


« Letzte Änderung: 01.10.08 - 10:55:56 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #8 am: 22.11.06 - 20:10:47 »
Hallo Thomas,

Finde ich super das du dir diese Mühe einmal gemacht hast das zusammen zu schreiben. Mir ist das auch alles klar gewesen.

Aber das bedeutet also, wenn ich Author Rechte für "normale Benutzer" habe und es gibt das Authorfeld und es ist LOCKDOCUMENTSGENERAL = NO dann haben ja diese Benutzer keinen Zugriff zu den doc's auch wenn sie es erstellt haben(hab ich auch nachgebaut). Somit funktioniert aber LOCKDOCUMENTSGENERAL = NO  nicht im Zusammenhang mit Authorrechte!!

Das wäre auch genau das was ich in meinen vorigen Beiträgen schon gesagt habe oder?

Vom Lesefeld her würde es ja funktionieren, weil das bei LOCKDOCUMENTSGENERAL = NO nicht gefüllt werden würde. Aber das Authorfeld ist auch leer -> kein Zugriff.
Alternative, die ich aber nicht möchte ist, dass die "normalen Benutzer" Editorrechte bekommen. Dann passiert aber wieder das, dass sie alle doc's sehen das ich ja auch wieder nicht haben möchte weil sie sollen nur ihre doc's sehen.

Als Lösung würde ich dann Vorschlagen, dass ich in der Maske kein Authorfeld erstelle und dann im Querysave den Parameter einbaue: if LOCKDOCUMENTSGENERAL = "YES" then erzeuge mir ein Authorfeld mit den gewünschten Rechten!!! Somit würde es dann funktionieren.

Oder was ist eure/deine Meinung dazu?

robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LOCKDOCUMENTSGENERAL = No -> leeres Authorfeld
« Antwort #9 am: 22.11.06 - 22:22:04 »
Du hängst das glaube ich an der falschen Stelle auf. Bei uns steuert dieser Parameter ob eine Berechnung von Leser und Autorenfeldern grundsätzlich durchgeführt wird oder nicht. Die Autorenfelder sind immer vorhanden. Damit haben wir natürlich auch das Problem das ohne diesen Parameter die Benutzer die Schreiben dürfen mindestens Editorenrechte haben müssen.

Wenn du also ein Autorenfeld einbaust und keinen Eintrag in dieses Autorenfeld machst, dann kann auch niemand dieses Dokument bearbeiten. Also musst du wenn du Autorenfelder verwendest eben immer Autoren eintragen. Insofern wäre deine Lösung machbar, das du bei bestimmten Bedingungen im Querysave ein Autorenfeld einbaust und das mit Werten füllst. Mir erschließt sich der Sinn des Ganzen zwar nicht ganz aber technisch ist das was du machen willst korrekt.

In !!HELP!! würde ich das allerdings eher so lösen, das ich grundsätzlich sperre, und für den Autorenzugriff eine EDITALL Rolle benutze.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz