AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
12.12.17 - 03:33:16
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Zugriff auf eine Datenbank beschränken
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: Zugriff auf eine Datenbank beschränken  (Gelesen 457 mal)
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« am: 06.12.17 - 17:27:24 »

Hallo,

ich habe ein seltsames Problem...

Es gibt eine Datenbank, wo mehrere Users und Gruppen verschiedene ACL Zugriffe (Editor, Autor, Leser...) und Rollen haben.
Die Rollen werden in Autor- und Leser-Feldern gespeichert.
Jetzt muss ich den Zugriff auf einige Dokumente stark beschränken.

Ich lösche jetzt fast alle Autor- und Leser-Felder in diesen Dokumenten (außer der Felder mit den ServerNamen und NotesAdmins), aber die vorherigen Berechtigten können immer noch auf diese Dokumente zugreifen!

Code:
Call doc.RemoveItem("readService")
Call doc.RemoveItem("readCMDB")
Call doc.RemoveItem("readAlleDoks")
Call doc.RemoveItem("editAlleDoks")
        ...
        Call doc.Save(False, True)

Woran kann es liegen bzw. was sollte man noch tun?

Gruß
Leo
« Letzte Änderung: 06.12.17 - 17:31:19 von Bruce Willis » Gespeichert

nobody is perfect but i'm pretty close 
WildVirus
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 629



« Antworten #1 am: 06.12.17 - 18:20:50 »

Hallo Leo,

sicher, dass es keine anderen Autor-/Leserfelder mehr gibt und dass die Werte in den vorhandenen A/L-Feldern korrekt sind ?

Arbeiten die AW auf dem Domino oder auf lokalen Repliken ?

Ist die ACL überall identisch ?

CU
Axel
Gespeichert
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #2 am: 07.12.17 - 11:24:58 »

Hallo Axel,

Danke für die Vorschläge, all das sieht gut aus. Ich hatte in den fraglichen Dokumenten sogar die Inhalte jedes Feldes (insgesamt etwa 100) überprüft und nichts Verdachtiges gefunden.
Das Problem betrifft aber nur diese Datenbank bzw. alle Repliken. In der Schablone und Testumgebung funktioniert alles richtig...
Die Datenbank ist etwa 20 GB groß, hat etwa 60.000 Dokumente und 24 ACL-Rollen...

Gruß
Leo
Gespeichert

nobody is perfect but i'm pretty close 
Tode
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5839


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #3 am: 07.12.17 - 11:42:21 »

Lass Dir doch mal alle Autoren und Leser- Felder NACH Deinem Save anzeigen:
Code:
ForAll item In doc.Items
If item.Isauthors Then
ForAll strValue In item.values
If strAuthors = "" then
strAuthors = item.name & "=" & strValue
Else
strAuthors = strAuthors & "," & item.name & "=" & strValue
End If
End ForAll
ElseIf item.Isreaders Then
ForAll strValue In item.values
If strReaders = "" then
strReaders = item.name & "=" & strValue
Else
strReaders = strReaders & "," & item.name & "=" & strValue
End If
End ForAll
End If
End ForAll
Msgbox "Authors: " & strAuthors
Msgbox "Readers: " & strReaders
Steht da wirklich nur das drin, was Du erwarten würdest? Oder ist da was drin, wo Du sagst "Ach mensch... darüber kriegen die die Berechtigung...."
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #4 am: 08.12.17 - 12:19:45 »

Hallo Torsten,

vielen Dank für Deinen tollen Script!
Du hast mir sehr geholfen!!!   Knuddeln

Das Problem habe ich gelöst.
Ein schönes Wochenende!

Gruß
Leo
Gespeichert

nobody is perfect but i'm pretty close 
Tode
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5839


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #5 am: 08.12.17 - 12:23:35 »

UND WIE? Sinn des Forums ist es, dass andere von den Lösungen PROFITIEREN! Bitte teile uns mit, inwieweit Dir das geholfen hat....
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #6 am: 08.12.17 - 13:05:07 »

UND WIE?...
Hallo Torsten,

die größte Hilfe deines Scripts war, dass ich die Masken richtig aufräumen konnte. Sie hatten eine ganze Menge der Leser- und Editor-Felder, die kein Mensch (mehr) braucht.

Außerdem hat dein Script schnell bestätigt, dass die Inhalte dieser Felder keine verdächtigen Namen beinhalten. Ich musste also woanders suchen... Und Folgendes habe ich gefunden:

Es gibt die Leser- und Editor-Felder "berechnet beim Anlegen", die der User per Button (bzw. LS) löscht. Damit war alles OK.

Es gibt noch die Leser- und Editor-Felder bloß "berechnet", mit z.B. so einer Formel

@If (cmdb = "Ja";  "[CMDB]" ; "" )

die ich zuerst etwa so geändert hatte:

@If (cmdb = "Ja" & makePrivat = "";  "[CMDB]" ; "" )

Wo makePrivat ein Feld ist, dessen Inhalt der User per Button ändern kann.

Es stellte sich heraus, wenn so ein Feld vorher nicht leer war, dann wurde nach dem Betätigung des Buttons und dem Speichern des Doks der Zugriff so geändert, dass ALLE (!!!) dieses Dok sehen bzw. editieren konnten!!!

Daher habe ich jetzt etwa so geändert und alles funktioniert richtig:
@If (cmdb = "Ja" & makePrivat = "";  "[CMDB]" ; "NotesAdmins" )

Unsere Gruppe NotesAdmins soll sowieso alle Doks in dieser DB editieren können.

Gruß
Leo
Gespeichert

nobody is perfect but i'm pretty close 
Tode
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5839


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #7 am: 08.12.17 - 13:09:16 »

ok. Danke!
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #8 am: 08.12.17 - 13:49:49 »

Ich würde das Ganze (bzw. diesen Notes Bug?) so beschreiben:

Wenn eine Rolle in ein Leser- oder Autor-Feld eingetragen wurde, darf danach dieses Feld nicht leer werden, da sonnst auf dieses Dokument jeder zugreifen darf.
Gespeichert

nobody is perfect but i'm pretty close 
WildVirus
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 629



« Antworten #9 am: 08.12.17 - 14:29:46 »

It's not a bug, it's a feature.

Aus der Notes 6-Hilfe (http://82.135.123.244/help/help6_designer.nsf/57b669b13aec7ba780256c250050b13e/e829c36c4b7f1a0a80256c4700389ac1?OpenDocument):

Alle Benutzer mit Editorzugriff (oder höher) auf die Datenbank können ein Dokument lesen und bearbeiten, wenn eine der folgenden Bedingungen gegeben ist:

  • Sie sind in der Lesezugriffsliste oder im Leserfeld der Maske aufgeführt.
  • In der Maske sind weder Einschränkungen in der Lesezugriffsliste noch im Leserfeld enthalten.

Und ein leeres Leserfeld steht für "keine Einschränkung".

Verhalten von Notes daher richtig, kommt aber häufiger vor, vorallem wenn sich Entwickler nicht genug mit dem Thema beschäftigen.

Übrigens, wenn Ihr mal den Gruppennamen Eurer Admins ändert, fliegt Euch die Rechteverwaltung wieder um die Ohren.

Ich sage immer, in Leser-/Autorenfelder nur echte Namen (also kein [CN]-Format) oder Rollen aus der ACL. Gruppennamen oder *Einträge sind für mich inakzeptabel.

Ich hatte vor vielen Jahren mal mit einer (gekauften) DB zu kämpfen,  die haben Autorenfelder im [CN]-Format gefüllt. Je nach Lust und Laune vom  Domino in Verbindung mit dem Browser hat es mal geklappt, mal nicht. War ein "schöner" Fehler. Reproduzierbar aber nicht in jedem Dokument auftretend.

Nur als kleine Ergänzung
« Letzte Änderung: 08.12.17 - 14:31:30 von WildVirus » Gespeichert
Tode
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5839


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #10 am: 08.12.17 - 14:32:29 »

Sorry, aber das ist kein Bug, sondern normal:

1. Author- Zugriff auf ein Dokument hat jeder, der in einem der Autoren- Felder genannt ist. Keine Autoren = Keine Autor- Zugriffe

2. Leser- Zugriff auf ein Dokument hat jeder, der in einem Leser- oder Autoren- Feld genannt ist. ACHTUNG: Keine Leser (nur die in Leserfeldern zählen) = JEDER hat Leser- Zugriff !!!!!!!

Das ist schon immer so und wird sich auch niemals ändern.
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #11 am: 08.12.17 - 15:36:55 »

It's not a bug, it's a feature.

...
Und ein leeres Leserfeld steht für "keine Einschränkung".

Verhalten von Notes daher richtig, kommt aber häufiger vor, vorallem wenn sich Entwickler nicht genug mit dem Thema beschäftigen....

Nur als kleine Ergänzung


Danke für die Ergänzung.
Der widerspricht allerdings die Tatsache, dass so ein geschützte Dok in meiner Datenbank viele leere Leser- und Autor-Felder hat und trotzdem für fast alle User unsichtbar ist. Siehe Screenshots anbei.

Oder hab ich was falsch verstanden?

Gruß
Leo
Gespeichert

nobody is perfect but i'm pretty close 
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #12 am: 08.12.17 - 15:56:40 »

... Ich sage immer, in Leser-/Autorenfelder nur echte Namen (also kein [CN]-Format) oder Rollen aus der ACL. Gruppennamen oder *Einträge sind für mich inakzeptabel...

Vielen Dank!
Gespeichert

nobody is perfect but i'm pretty close 
Tode
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5839


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #13 am: 08.12.17 - 16:39:00 »

Es ist mindestens EIN Leserfeld gesetzt. In deinem Beispiel sehen also nur die ## DB Admins die Dokumente UND die Heike Schlu sowie die LocalDomainServers.
Ich gehe mal schwer davon aus, dass alle Felder mit "dsp_" eh nur "Computed for Display" sind und damit nicht relevant.
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #14 am: 08.12.17 - 16:50:36 »

Es ist mindestens EIN Leserfeld gesetzt...
Eure Aussage doch war, dass KEINE leeren Felder sein sollten, da sonst jeder zugriefen kann.
Code:
Und ein leeres Leserfeld steht für "keine Einschränkung".
Oder hab ich falsch verstanden?
« Letzte Änderung: 08.12.17 - 16:52:20 von Bruce Willis » Gespeichert

nobody is perfect but i'm pretty close 
TRO
Senior Mitglied
****
Offline Offline

Beiträge: 289


« Antworten #15 am: 08.12.17 - 17:28:44 »

siehe hier https://atnotes.de/index.php/topic,51224.0.html und dort insbesondere Regel #8

hth
Thomas
Gespeichert
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #16 am: 09.12.17 - 15:02:44 »

siehe hier https://atnotes.de/index.php/topic,51224.0.html und dort insbesondere Regel #8

hth
Thomas

Dort steht:

Zitat
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.

So muss es sein, und dies erwartet auch jeder.
Aber meine Datenbank (siehe oben) zeigt, dass es nicht immer so ist!
Und was dabei zu beachten ist, habe ich oben beschrieben.

Und nochmals das Problem mit anderen Worten:

1. Es gibt ein Dok mit mehreren Leser-Feldern, einige davon sind leer.
Nur die zugelassenen User haben den Zugriff.

2. Benutzer startet eine LS Aktion, als Ergebniss hat das Dok immer noch mehrere Leser-Felder, einige davon sind leer.
Und alle (auch nicht zugelassene) User haben den Zugriff!
« Letzte Änderung: 09.12.17 - 15:09:11 von Bruce Willis » Gespeichert

nobody is perfect but i'm pretty close 
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 977



« Antworten #17 am: 09.12.17 - 16:31:14 »

2. Benutzer startet eine LS Aktion, als Ergebniss hat das Dok immer noch mehrere Leser-Felder, einige davon sind leer.
Und alle (auch nicht zugelassene) User haben den Zugriff!
Das glaube ich nicht, sobald ein Leserfeld einen Wert hat zieht auch der Doc-Zugriff.
Ich vermute das dein LS-Agent aus den Leserfelder normale oder Namensfelder macht.
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5
--
Nur ein toter Bug, ist ein guter Bug!
Bruce Willis
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 921


Wer nicht wagt...


« Antworten #18 am: 09.12.17 - 16:48:42 »

Das glaube ich nicht...
Hatte ich auch nicht geglaubt.
Daher sage ich doch: Notes Bug.

Ich vermute das dein LS-Agent aus den Leserfelder normale oder Namensfelder macht.
Falsche Vermutung.
Gespeichert

nobody is perfect but i'm pretty close 
TRO
Senior Mitglied
****
Offline Offline

Beiträge: 289


« Antworten #19 am: 09.12.17 - 17:24:57 »

aber du berücksichtigst auch, dass Autor-Felder auch Lesezugriff geben (Regel #9).... und in deinem Screenshot zu den Autorfeldern finde ich da Einträge wie "vs-all" und "fibu-all"
Gespeichert
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: