2009-03-10 14 views
1

1000以上のデータベースと600以上のsprocsを持つアプリケーションがあります。各データベースは異なるクライアントを表します。単一データベースへの移行の準備

問題:できるだけuiに影響を与えないように、これを単一のデータベースに移動する必要があります。つまり、1回ですべてのsprocシグニチャを変更しないでください。

現在、接続文字列でデータベース属性が設定されていますが、その属性をユーザー属性に移動することを提案しています。この属性(SYSTEM_USERを使用)は、where句で使用されるサイト識別子を決定するために使用できます。

上記は最終的な解決策ではありませんが、遅い制御ペースでsproc署名を変更することができます。すべての作業が完了したら、connstringを修正して接続プールを取得することができます。

sqlserver 2005/8で使用できるログイン/ユーザー数に制限はありますか。または、この道を歩いている人がいれば、より良い選択肢に光を当てることができます。もし2つが同じプロジェクトに取り組んでいるよう

答えて

1

Ideas for Combining Thousand Databases into One Database

ここに私の答えを参照してくださいね。 1つのデータベースに移動する前にすべてのprocを変更する必要があります。そうしないと、各クライアントは他のデータを参照します。

+0

どのように推測しましたか? – Thad

+0

いいえ、データを個別のスキーマ(顧客ごとに1つ)に入れ、適切な権限を適用すると、顧客は互いのデータを表示しません。 –

+0

スキーマが役立つかどうかはわかりません。結合されたデータベースには、それぞれが1つの顧客に属する複数のテーブルではなく、1つのテーブルセットとサイト識別子列があり、各行が誰に属しているかを示します。 – stevemegson

0

SQL Server 2005/08のログイン数については、ここでは誰も厳しい制限はありません。数千人になります何か問題があります。

このシナリオでは、1つのDB内に1つのスキーマがあると考えられます。顧客「Miller」は内部にオブジェクトを持つ「Miller」スキーマを持ち、顧客「Brown」は「Brown」スキーマを持ちます。

HLGEMがちょうど対応したのとは反対に - いいえ、顧客はそれぞれのデータを見ることはできません。適切なアクセス許可を指定すると、各顧客(およびそのユーザー)は独自のスキーマのみになります。

マルク・

0

また)あなたがAPP_NAMEを(使用して、where句に入ることができ、接続文字列で独特のアプリケーション名を設定するのではなく、独特のユーザーを使用して検討するかもしれません。私は、SQL Serverに何千ものログインに関する問題はないと確信していますが、作成したくない場合があります。

関連する問題