0

SQL Server Configuration Manager > SQL Native client Configuration > Aliases にエントリがあります

Alias Name : CRM_APP
Port : 5051
Protocol: TCP/IP
Server: 10.10.10.10\MYSERVER

を使用してSQLに接続しています

Servername : CRM_APP

SQL 接続がエイリアスを使用しているかどうかを検出するにはどうすればよいですか (基本的に、クライアントが使用しているサーバーの実際の IP アドレスを知りたい)、SQL または C# を使用してサーバーに接続しますか?

コメントからコピーされた要件のより明確な説明:

基本的に、Winform アプリケーションのログインを LAN のみに制限したいと考えています。ユーザーがインターネット経由でサーバーに接続しようとしても、許可されるべきではありません。しかし、ファイアウォール ポリシーや SQL ログオン トリガーを使用してそれを実行したくありません。ホスト ファイルを使用している場合は、接続を処理しました。次に、エイリアスを処理する必要があります

4

2 に答える 2

1

使用SERVERPROPERTY:

  • SERVERPROPERTY('ServerName'): SQL Server の指定されたインスタンスに関連付けられている Windows サーバーとインスタンスの両方の情報。
  • SERVERPROPERTY('MachineName'): サーバー インスタンスが実行されている Windows コンピューターの名前。クラスター化されたインスタンス (Microsoft Cluster Service 上の仮想サーバーで実行されている SQL Server のインスタンス) の場合、仮想サーバーの名前を返します。
  • SERVERPROPERTY('ComputerNamePhysicalNetBIOS'): SQL Server のインスタンスが現在実行されているローカル コンピューターの NetBIOS 名。フェールオーバー クラスター上の SQL Server のクラスター化されたインスタンスの場合、SQL Server のインスタンスがフェールオーバー クラスター内の他のノードにフェールオーバーすると、この値が変化します。SQL Server のスタンドアロン インスタンスでは、この値は一定のままで、MachineName プロパティと同じ値を返します。

アップデート

ところで、アプリケーションをよく知られているサーバーにのみ接続する場合は、SSL/TLS を利用します。

  • Encrypt=Trueアプリケーションが使用する接続文字列で指定します。これにより、接続に必要な SSL/TLS がトリガーされます。
  • サーバーの FQDN を指定します。「SQL Server への接続の暗号化」、特にSQL Server Native Client Certificate Requirementsセクションを参照してください。
  • SQL を使用するためにサーバーに証明書をインストールしますConfiguring SSL For SQL Server。上記の同じリンクを参照してください。
  • サーバーの証明書をクライアントの信頼できる証明書に追加する

このようにして、アプリケーション接続を「ハイジャック」しようとする試みに対して重大な障壁を追加しています。

于 2013-04-10T08:05:22.130 に答える