Wir haben eine Anwendung, die 1000+ Datenbanken und 600+ Sprocs hat. Jede Datenbank repräsentiert einen anderen Client.Vorbereitung für den Wechsel zu einer einzigen Datenbank
Problem: Wir müssen dies zu einer einzigen Datenbank verschieben, während so wenig Wirkung auf die ui wie möglich zu erstellen, das heißt, ändern Sie nicht alle Sproc-Signaturen auf einmal.
Die Verbindungszeichenfolge legt derzeit das Datenbankattribut fest, ein Vorschlag besteht darin, das Benutzerattribut zu verschieben. Dieses Attribut (mit SYSTEM_USER) könnte verwendet werden, um die Site-ID zu bestimmen, die für die WHERE-Klausel verwendet werden würde.
Das obige wäre keine endgültige Lösung, sondern erlaubt es uns, Änderungen an der Sproc-Signatur in einem langsam kontrollierten Tempo vorzunehmen. Sobald alle fertig sind, können wir den Connstring korrigieren und ein Verbindungspooling erhalten.
Gibt es eine Beschränkung der Anzahl der Logins/Benutzer, die wir auf sqlserver 2005/8 haben können? Oder ist jemand diesen Weg gegangen, der eine bessere Option beleuchten könnte?
wie hast du es erraten. – Thad
Nein, wenn Sie die Daten in separate Schemas - eines pro Kunde - legen und die entsprechenden Berechtigungen anwenden, wird der Kunde * NICHT * die Daten des anderen NICHT sehen. –
Ich bin nicht sicher, dass Schemas helfen werden. In der kombinierten Datenbank gibt es eine Reihe von Tabellen und eine Spalte mit der Site-ID, die angibt, zu wem die einzelnen Zeilen gehören, und nicht mehrere Tabellen, die jeweils zu einem Kunden gehören. – stevemegson