2017-05-25 6 views
2

だから、私は、ローカル・データベースを指しSQL Server接続文字列を持っている:SQL Server Connectionを透過的に転送できますか?

データソース= .;初期カタログ= MyDatabaseというを、私は、この接続文字列を変更することはできません統合セキュリティ= Trueの

しかし、私はSQLサーバーが他の場所に住んでいるのが大好きです。

これを可能にするために、SQL Serverやオペレーティングシステムの何かがありますか?私はIntegrated Security(別名Windows認証)の部分がこれを本当に難しくしてくれることを知っていますが、方法があるかどうかを尋ねる価値があると思います。

+1

この特定の接続文字列は厳しいです。ローカルマシンのビルトインエイリアスで、デフォルトで共有メモリプロトコルを使用します(ネットワークスタックを完全にバイパスします)。私はこれがリダイレクトされるとは考えていません。実行時に接続文字列を読み取るコードにパッチを当てる手間がかかりません(これはアンマネージドコードよりも.NETの方が現実的ですが、やはり簡単ではありません)。実際のサーバー名については、SQL Server構成マネージャーを使用して[aliases](http://msdn.microsoft.com/library/ms190445)を定義することはできますが、「」とは思わないエイリアス(私はそれをテストしていない)ことができます。 –

+0

@ JeroenMostertありがとうございました!これは実際に動作します - 私は別のサーバに '.'エイリアスすることができます。あなたが答えとしてそれを追加するなら、私は十分に値する担当者のためにそれを受け入れることができます。 – Henry

+1

さて、私が学んだことがちょっと恐ろしいものであっても、今日は新しいことを学びました... –

答えて

2

クライアントソフトウェアでネイティブSQLクライアントが使用されている場合(ほとんどすべての場合)、SQL Server Configuration Managerを使用して任意のサーバー名をエイリアスできます。 Configuration Managerスナップインで、[SQL Native Client [バージョン]の構成]を展開し、[エイリアス]を右クリックして[新しいエイリアス]を選択します。32ビット版と64ビット版の2つの項目があります両方の場所にエイリアスを追加することを忘れないでください。

この電力は控えめに使用してください。 サーバー名には、.(LocalDB)\MyInstanceのような特別な名前が含まれます。通常はローカルマシンのみを参照し、TCP/IPも使用しません。これらのエイリアスは、カジュアルな読者には非常に混乱することがあります。エイリアスは大文字と小文字を区別しませんが、それ以外の場合は正確に一致する必要があります。したがって、空白を追加するか、.ではなくlocalhostなどを使用してください。

+0

ツール/クライアント/ etcのバージョンを追加するだけです。問題:このマシンにはSQL Server 2016 SP1がインストールされています。実行中のインスタンスはありません(SQL Serverが実際にシャットダウンされ、 – Henry

関連する問題