Autor Thema: verbieten eine DB lokal zu replizieren  (Gelesen 3337 mal)

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
verbieten eine DB lokal zu replizieren
« am: 10.01.03 - 13:36:56 »
hallo,

ich hab eine DB auf meinem server, die mit dem cluster und dem webserver repliziert wird. das soll auch so bleiben.

ich hab diese DB auch nicht in meinem profil notebooks drin, weil ich nicht will, dass die user die DB offline bedienen, weil beim anlegen eines dokumentes die manager aus dem nab nicht ausgelesen werden. ist soweit auch kein problem.

es gibt aber user, die sich trotzdem einfach diese DB lokal replizieren, und offline dokumente anlegen, in denen dann infos fehlen.

kann ich theoretisch verbieten, dass user sich eine DB lokal replizieren? aber die replizierung mit dem cluster und webserver geht dann trotzdem noch?

oder muss ich den button "new document" verstecken, wenn der user nicht online ist? wenn ja, wie geht das?

vielen dank fuer hilfe,
gruss,
daniela
im moment in mutterschutz

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:verbieten eine DB lokal zu replizieren
« Antwort #1 am: 10.01.03 - 13:44:25 »
Hi Daniela,

mit R6 geht das....mit R5 und tiefer kann ich nur die konsistene ACL empfehlen.
Mit den Hide-When Formeln zu arbeiten, naja. Prüfe doch einfach beim öffnen der DB ob diese sich lokal befindet (ist eine Datenbank Property) und setzte einen entsprechenden Ini Eintrag, diesen nutzt Du dann für die Hide-When Formel.

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:verbieten eine DB lokal zu replizieren
« Antwort #2 am: 10.01.03 - 20:21:20 »
... wenn du beim Öffnen der DB überprüfst, ob sie lokal geöffnet wird, dann gib eine Meldung aus, daß das nicht sein soll und schließe die DB wieder...

ata
Grüßle Toni :)

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:verbieten eine DB lokal zu replizieren
« Antwort #3 am: 10.01.03 - 21:02:08 »
Leider geht das nicht so ohne weiteres, aber ich hab da was. Einfach in den DB Script einfügen :

Unter Declarations :

Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long
Declare Function NEMStopSubprogramWindow Lib "nnotesws.dll" (Byval hwnd As Long) As Integer

Und im Postopen :

Set session = New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim version As String
   Dim extract As String   
   
   version = session.NotesVersion
   extract = Left(version, 9)
'   Messagebox extract
   If extract <> "Release 5" Then
      Messagebox "Important:  Sorry but you do not have an R5 client and will be unable to properly access this application.", 0 + 64, "Sorry!"
      Dim wHandle As Long
                        ' Get window handle
      wHandle = NEMGetCurrentSubprogramWindow
                        ' Close current window
      Call NEMStopSubprogramWindow(wHandle)
   End If

Das Ding ist zum Prüfen, ob der Anwender mit einem 5er Client arbeitet, sollte ziemlich simple zum Anpassen bzgl. der lokalen Replik sein. Aber Achtung : Wenn ein Anwender mit dem Script Debuger arbeitet, dann kann man das Ding ziemlich simple umgehen.

Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:verbieten eine DB lokal zu replizieren
« Antwort #4 am: 10.01.03 - 21:47:11 »
... im QueryOpen der Ansichten folgender Code:

Dim vDB As Variant
vDB = Evaluate("@DBName")
If vDB(0) = "" Then
   Msgbox "Die Datenbank darf nicht lokal geöffnet werden - Abbruch" , 16 , "Abbruch"
   Continue = False
End If

... aber - mit dem Debugger kann man auch das umgehen...

ata
« Letzte Änderung: 10.01.03 - 21:49:00 von ata »
Grüßle Toni :)

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:verbieten eine DB lokal zu replizieren
« Antwort #5 am: 10.01.03 - 22:06:52 »
@ata :

Kannst Du damit wirklich das Öffnen einer Datenbank verhindern ? Ich kann dann doch trotzalledem ein Dokumente in der DB erstellen, solange dieses über Aktion - Dokument erstellen machbar ist ?

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:verbieten eine DB lokal zu replizieren
« Antwort #6 am: 11.01.03 - 10:26:32 »
... wenn die Aktion dementsprechend eingestellt ist ja, aber auch da lässt sich der Code im Postopen in Verbindung mit IsNewDoc verwenden...

ata
Grüßle Toni :)

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:verbieten eine DB lokal zu replizieren
« Antwort #7 am: 11.01.03 - 13:17:49 »
@Meff

warum nicht ohne weiteres möglich?

ich habe das schon mit der 4er Version gemacht und mit der 5er funktioniert es auch - keep it simple.

im Postopen der Datenbank
@If(@Name([CN]; @Subset(@DbName; 1)) != "";@Return(""); @Do(
@Prompt([OK];"Restriction"; "Database can only run on server");
@PostedCommand([FileCloseWindow]) ) )


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:verbieten eine DB lokal zu replizieren
« Antwort #8 am: 13.01.03 - 08:22:29 »
@Performance

da hab ich mir wohl kräftig einen abgebogen. Hast ja recht mit Keep it simple....


Meff ;)
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:verbieten eine DB lokal zu replizieren
« Antwort #9 am: 13.01.03 - 10:06:11 »
hallo @all,
zuerst mal vielen lieben dank fuer alle eure tips.

Hi Daniela,

mit R6 geht das....mit R5 und tiefer kann ich nur die konsistene ACL empfehlen.
Mit den Hide-When Formeln zu arbeiten, naja. Prüfe doch einfach beim öffnen der DB ob diese sich lokal befindet (ist eine Datenbank Property) und setzte einen entsprechenden Ini Eintrag, diesen nutzt Du dann für die Hide-When Formel.

Meff ;)
meff:
ich arbeite ja sowieso schon mit konsistenter ACL in allen repliken, das hab ich in jeder datenbank so eingestellt. aber er darf ja generell dokumente erstellen. nur halt nicht lokal.

peformance:
ich hab deine loesung ausprobiert. du hast geschrieben, im postopen der datenbank. ich nehme an, du meinst in jede ansicht der datenbank. das hab ich ausprobiert, mal mit einer ansicht. es klappt auch, die meldung kommt lokal, jedoch krieg ich jedesmal einen absturz vom notes. habs mehrmals probiert. diese komische exception memory fehlermeldung.

ata:
letztlich hab ich dann dein script genommen, und mal in eine ansicht genommen. mit dem script scheint das zu klappen. muss es halt jetzt noch in jede ansicht reintun, und die aktion uebers menu ausblenden. dann muesste das genau das sein, was ich brauche.
allerdings kann ich dann halt selber nimmer lokal testen. aber ist jetzt nicht soooo wichtig.

vielen dank nochmal euch allen,
gruss,
daniela
« Letzte Änderung: 13.01.03 - 10:16:54 von luna »
im moment in mutterschutz

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:verbieten eine DB lokal zu replizieren
« Antwort #10 am: 13.01.03 - 10:20:27 »
hallo daniela

du kannst zwar nicht das replizieren verbieten, du kannst aber das öffnen der db verhindern.
- wenn ich sage im postopen der db, heisst das im globalen Postopen der db - sie Bild -


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:verbieten eine DB lokal zu replizieren
« Antwort #11 am: 13.01.03 - 10:55:05 »
hallo performance,

vielen dank fuer das bild. sorry, ich wusste das gar nicht, dass es sowas gibt. hab's noch nie gebraucht. aber jetzt weiss ich's ja. :D

ich hab's jetzt nochmal mit deiner formel probiert, und es klappt. er gibt deine fehlermeldung bereits beim oeffnen der DB aus, und schliesst sie anschliessend sofort wieder.

ich nehme jetzt also deine formel her. vielen dank dafuer.

vielen dank nochmal an alle fuer eure hilfe !!!  ;D

gruss,
daniela
im moment in mutterschutz

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:verbieten eine DB lokal zu replizieren
« Antwort #12 am: 13.01.03 - 10:56:05 »
... du könntest dich als User ermitteln und dann eben Continue = True nehmen, wenn du als User identisch bist - hardcoded...

ata
Grüßle Toni :)

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:verbieten eine DB lokal zu replizieren
« Antwort #13 am: 13.01.03 - 11:00:47 »
hallo ata,

vielen dank fuer diesen tip. aber ich hab ja jetzt eine formel drin, von performance, und nicht mehr dein script. dein script muesste ich halt in allen ansichten einbauen, die formel nur einmal im postopen der DB. ist glaub ich einfacher. dann geht die DB erst gar nicht auf.

koennt ich denn in dieser formel:

@If(@Name([CN]; @Subset(@DbName; 1)) != "";@Return(""); @Do(
@Prompt([OK];"Restriction"; "Database can only run on server");
@PostedCommand([FileCloseWindow]) ) )

das auch so einbauen, dass er sie niemandem oeffnet, nur mir? ich schaue auf diese formel und schaue und schaue, aber ich wuesste nicht, wie ich das machen soll.

und, der user hat ja jetzt schon eine replik angelegt, bevor ich diese formel eingebaut hatte. spaetestens, wenn er das naechste mal repliziert, muesste er danach die DB nicht mehr oeffnen koennen, oder?

gruss,
daniela
im moment in mutterschutz

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:verbieten eine DB lokal zu replizieren
« Antwort #14 am: 13.01.03 - 12:03:31 »
du meinst das nur du sie lokal öffnen kannst ?

yep

@If(@Name([CN]; @Subset(@DbName; 1)) != "" | @Name([Abbreviate]; @UserName) = "xxx yyy/firma/DE";@Return(""); @Do(
@Prompt([OK];"Restriction"; "Database can only run on server");
@PostedCommand([FileCloseWindow]) ) )

cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:verbieten eine DB lokal zu replizieren
« Antwort #15 am: 13.01.03 - 12:37:03 »
cool  8)

dankeschoen.

gruss,
daniela
im moment in mutterschutz

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:verbieten eine DB lokal zu replizieren
« Antwort #16 am: 13.01.03 - 13:13:48 »
@luna

... die Formel von Performance ist die einfachste Lösung...

ata
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz