Beschränkungen mehrerer Benutzer

Solch eine anspruchsvolle Aufgabe hatte ich bislang noch nicht zu lösen!
In einer tabellarisch einfachen Struktur sind Einnahmen und Ausgaben sowie Datum und Person zeilenweise einzutragen.
Für mehrere Personen ist das monatlich aktuelle Blatt/Formular frei zugänglich.
Jedes Blatt ist in 4 Segmente strukturiert:
a) Login,
b) Einnahmen,
c) Ausgaben,
d) Hilfsbereich.


Jeder Benutzer hat unterschiedliche Berechtigungen sowie Sichtbarkeiten:

  1. der „Admin“ darf Alles inkl. Hilfsbereich ändern, ergänzen, neuen Einkaufer hinzufügen und sehen;
  2. der „Chef“ darf nur Einnahmen, Ausgaben, Summen, Überträge eintragen und sehen;
  3. jeder „Einkäufer“ darf nur Ausgaben tätigen und sehen; die Einnahmen sowie Summen, Überträge sind für sie unsichtbar;
  4. jeder kann nur seinen eigenen Namen für seinen Eintrag je Zeile auswählen (Listeneintrag);

X) ob die Ausgaben der anderen Einkäufer respektive „Chef“ frei/gesperrt sind, soll vorerst nicht beachtet werden.


Die Login-Bedingungen habe ich bislang im CALC-Hilfsbereich gelöst, was ziemlich komplex war. Im Bereich Einnahmen/Ausgaben scheitere ich zumindest heute.

Hat jemand so etwas Ähnliches bewerkstelligt? Kennt sich jemand aus mit differenten überlappenden Berechtigungen?


•Ist eine BASE-Datenbank dafür besser geeignet?
•Oder soll ich eine andere Software einsetzen?
= = =
nachträglich ergänzt: mit Summen soll math. Operatoren aus Statistik und Finanz und Datenbank bezeichnet werden.

Das bekommst Du nur über eine Serverdatenbank mit ordentlicher Benutzerverwaltung geregelt. Ich würde Dir Base zusammen mit einer MariaDB empfehlen. MariaDB bzw. MySQL ist recht weit verbreitet - entsprechend viele Anleitungen bekommst Du auch dazu. Die MariaDB ist über einen direkten Treiber von Base aus ansteuerbar.

Du kannst in Calc zwar alle möglichen Blätter mit irgendwelchen Passworten schützen, aber wo hast Du denn dann die Daten liegen, von denen alle Leute irgendeinen Teil sehen und verändern können sollen? Calc ist ein Kalkulationsprogramm, keine Datenbank.

1 Like

… früher verwendete ich MS-ACCESS. Solange, bis ich kollabierte, weil komplexere math. Operationen (höhere Mathematik) damit nicht machbar waren bzw. nur sehr schwer. Auch unter LO-BASE habe ich nichts dergleichen entdecken können, so dass ich letztendlich bei MS-EXCEL und LO-CALC hängen geblieben bin. Ich hoffe, dass ich mit meiner Einstellung falsch liege!
Die wenigen Daten, die in jede monatliche CALC-Tabelle/BASE-Formular eingefügt werden, sind nicht das eigentliche Problem. Sondern die finanzmathematischen plus statistischen Berechnungen mitsamt deren Zugangsbeschränkungen.


Ich ahne, dass ich mein oben genanntes Konzept verwerfen muss…


Die komplex vernetzbaren Abfrage-Prozeduren, die ich in ACCESS dominant und vorteilhaft nutzte, sind hier gar nicht gefragt.

Nur zur Info: Ich erinnere mich schwach, dass ich relevante DB-Spalten nach EXCEL manuell kopierte, um damit nunmehr einfach zu rechnen. Die alte DB-Bank umfasst mehr als 6000 Formular/Datenblätter, teilweise mit Fließtexten.

Unter LO-BASE findest Du da im Prinzip gar nichts. Base ist eher ein Verbindungsmodul zu Datenbanken. Diese können “zufälligerweise” in derselben Datei gespeichert sein oder (csv/dbase) irgendwo auf der lokalen Festplatte oder eben uber einen DB-Treiber (odbc, jdbc bzw. auch native direkte Verbindungen von LibreOffice aus) in einer externen Server-Datenbank liegen.

Gib Die Daten über Base in eine Serverdatenbank ein
.
Überlasse es MariaDB etc sich um die Berechtigungen zu kummern.
.
Ziehe ein Abfrage fur die relevanten Daten aus der Datenquellenansicht in eine Calc Datei. Hier kannst Du mit diesen Daten nach belieben wie bisher arbeiten und hast alle Moglichkeiten von Calc. Ausserdem kannst Du jederzeit in den am Anfang erzeugten Datenbereich zurückgehen und aus dem Menü Daten>Aktualisieren wählen um eben aktuelle Daten zu analysieren.

.
Anmerkungen:

Dazu haben Server-Datenbanken den Login-Namen. Diese UserId lässt sich bei Bedarf mitspeichern.

Es macht da Sinn separate Tabellen fur Einnahmen und Ausgaben zu erzeugen, dann kann das über Tabellenberechtigungen organisiert werden. Weitere Einschränkungen kann man über Views machen. Generell: Was erzwungen werden soll, muss über die Berechtigungen in der Datenbank erfolgen, nicht erst in Base/Calc.

Fur Nutzerrechte etc habe ich bei MariaDB HeidiSQL verwendet und Base nur für Die Abfragen/Formulare.

1 Like

… gut zu wissen :woozy_face::smiling_face_with_three_hearts: / wertvolle Informationen!

Diese 3 Schritte sind kompliziert. Und vermutlich fehlerträchtig, sobald ein Teil geändert wird, oder ein Zugriff verwehrt wird. Deren Robustheit der Funktionalität ist nicht auf 10 Jahre ausgelegt! Also eher eine Lösung mit Sackgasse.


Ich kenne mittelständische Firmen, die „missbrauchen“ die Tabellenkalkulatoren als kaufmännische Datenbank mit Pivot-Sortierung. Das hat mich bislang stets zweifeln lassen, warum sie das machen, und ihren Kunden zurVerfügung stellen.


Leider ist MS-ACCESS dermaßen speziell, und überhaupt nicht gebräuchlich, sodass ich solcherlei den anderen 3 Benutzern nicht anbieten kann.

:kissing_heart:
Diese Abwandlung ist mir gleichzeitig in den Sinn gekommen!


Können Sie mir eine einfache Anleitung/Beispiel geben, denn mit externen DBs kenne ich mich nicht aus.

Das vorgeschlagene System scheidet – zumindest jetzt – aus für diese Aufgabe mit „nur einer Hand-voll“ Daten. Ein externer Server über Funknetz ohnehin, da andere Nutzer vorOrt im Funkloch sind und jeglicher Aufwand, das zu ändern einfach zu hoch ist. Fazit: Nur ein autonomes Mini-System kann die Aufgabe erledigen.

Das einzige was wirklich kompliziert werden kann, ist die Rechteverwaltung in der Datenbank, wenn sich etwas grundsätzliches ändert. (Z.B. Dein "Verkäufer darf keine Einnahmen sehen, wenn Ein-/Ausgaben über dieselbe Tabelle laufen wurden nachtraglich berucksichtigen.).
.
SQL liegt auch nicht jedem, aber komplexe Formeln in Calc auch nicht.
.
Ich nutze meine Datenbanken seit 2018, also frag mich in 3 Jahren. Aber zu behaupten, das externe Datenbanken wie MySQL/MariaDB oder Postgres nicht langzeittauglich sind, ist fazinierend (um es mal milde auszudrücken).
.
Ich habe mich gerade aus dem Grund der Stabilität dafür entschieden. Notfalls kann ich Base durch eine selbstgeschriebene Lösung ersetzen, alles andere finde ich auf jedem OS wieder. Dazu ist der LAMP-Stack viel zu verbreitet.

Dafur reichte das “billigere” Paket von MS ohne Datenbank und scheinbar muss niemand etwas dazu lernen. Datenbanken gelten ja als kompliziert. Warum Excel sls einfach gilt… ? Evtl, weil der Einstieg einfach scheint.

Da hast Du etwas missverstanden (es sei denn Du arbeitest noch unter einem Single-Task-System wie MS-Dos :wink: ). Die “Server-Datenbank” kann auf demselben Rechner wie Base laufen (, muss aber nicht). Meine Development-Version läuft auf meinem Laptop. In der Firma nutze ich ain NAS für etwa 15 Berechtigte + einige “Roles”). Hängt im wesentlichen an der Menge gleichzeitiger Datenzugriffe und der jeweils auszugebenden Datenmenge.
.
Die Systeme sind quasi identisch. Nur die registrierte Datenquelle ist anders, wobei ich bisher eher das Ziel im ODBC-Connector ändere, wenn ich vom Development-Laptop die NAS-Version anspreche.

Ich empfehle HSQL2 weil man das direkt aus einer vorhandenen eingebetteten Datenbank erzeugen kann. Die externe Datenbank besteht dann aus mehreren Dateien, die ein Benutzer zur selben Zeit lesen und schreiben kann. Die URL sieht dann aus wie: jdbc:hsqldb:file:path/DB_Name.
Seit nunmehr 15 Jahren habe ich auch eine Mehr-Benutzer-HSQLDB im Servermodus am Start. Dafür sieht die URL aus wie jdbc:hsqldb:hsql:Server_Name/DB_Name. “Meine” Benutzer bekommen immer nur Formulare ohne Base-Dokument zu sehen.

Der SQL-Code zur Verwaltung von Gruppen und Benutzern ist bei allen klassischen Datenbanken sehr ähnlich und leicht zu verstehen.