Hallo zusammen,
folgende Situation: Wir betreiben einen MS-SQL-Server auf einer ausreichend dimensionierten Maschine.
Als Frontend dient, wie so häufig, MS Access, was uns vor folgende Probleme stellt: Beim Einsatz von Combo-Boxen in Formularen erfolgt ein permanentes SELECT auf dem Server, was zunächst zu Lesesperren und in der Folge sogar zu Dead-Lock-Situationen führen kann.
Die Frage ist, ob es am MS-SQL-Server einen „Schalter“ gibt, bei dem explizit LESE-Sperren (die ja meist Seitenweise beginnen und dann, bei andauernden SELECTS ausgeweitet werden) abgeschaltet werden können. In unserer Umgebung haben wir die Verwendung von Sperren diskutiert und könnten damit leben, wenn es keine LESE-Sperren gäbe.
Hat irgendwer eine Ahnung oder fehlen weitere Infos?
Vielen Dank für Hinweise!
Euer
Erntehelfer
Hi
Ich weiß jetzt nicht, ob du das suchst, aber Zugriffsrechte kann man mit dem SQL-Befehl GRANT setzen.
Da gibt es dann die Optionen
SELECT
INSERT
UPDATE
DELETE
ALL PRIVILEGES
z.B.: GRANT ALL PRIVILEGES ON Tabelle [, Tabelle2, …] TO benutzer [, benutzer2, …]
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo!
Zunächst mal vielen Dank für Deine Antwort.
Und Nein, das ist nicht, was ich suche. Das Problem sind nicht Zugriffsberechtigungen, Serverrollen oder ähnliches.
Die Problematik ist schwieriger und vielleicht ein wenig schlecht zu beschreiben. Beispiel: Ich lege ein Formular an, in dem ich eine Auswahlliste in Form einer Combobox zur Verfügung stelle. In dem Element kann aus einer großen Anzahl DS ausgewählt werden, sagen wir mal 10000. Auf dem Server liegen aber 80000 DS. Der Effekt ist, dass nicht nur die 10.000 DS gesperrt werden, sondern auf Grundlage eines server- bzw. tabellenweiten SELECTS werden gleich alle DS gesperrt (sie könnten ja geändert werden:frowning:).
Das bedeutet, dass ein User, welcher dieses SELECT ausführt, das Lesen anderer User verhindert (sperrt). Der nächste User, welcher selektieren möchte, kommt in eine Warteposition, bis die Sperren vom Server aufgehoben wurden. Will der erste User das Formular verlassen (und damit die Daten freigeben) sperrt die Leseanforderung des nächsten Users die Daten wieder, es kann zu einer „Dead-Lock“-Situation kommen, insbesondere, wenn es nicht nur zwei, sondern mehrere User sind, die mit den Daten arbeiten wollen. Wie gesagt, es geht nicht um das Sperren, wenn Daten zur Bearbeitung gesperrt werden. Das ist richtig, um „Dirty Data“ zu verhindern. Bei reinen Lesen ist das unsinning und sollte abgeschaltet werden können.
Nur wissen wir nicht, wie.
Gruß
Erntehelfer