2016-08-29 71 views
1

私はいくつかのExcelレポートを作成中で、SQL接続を暗号化しようとしています。サーバー側では、私はすべて適切にセットアップし、Microsoft管理スタジオで私は安全な接続を確立することができます。しかし、私は何のための解決策を見つけることはできません。私はEncrypt = yesのようなものが必要だと思うか、SSLをサポートしていないこのADODB.Connectionですか?事前Encrypt excel-vba ADODB接続

+0

私の知る限り、SQL Serverへの接続はExcelではなくWindows(セキュリティ、ネットワーク、暗号化、認証など)で処理されます。 Excel/ADOで接続タイムアウトを設定することさえできません。もちろん、 'ADODB.Connection.ConnectionTimeout = 5000'を使うことができます。しかし、影響を与えないので、その行をスキップすることもできます。したがって、私が完全に間違っていない場合は、SQL設定に焦点を当てて、暗号化された接続のみを許可するようにしてください。https://msdn.microsoft.com/en-us/library/ms191192.aspx 'Trusted_Connection = yes'を指定してください。 – Ralph

答えて

0

Private Function GetDataFromADO(ByVal Sel As String) As ADODB.Recordset 

'Declare variables' 
    Dim objMyConn As ADODB.Connection 
    Dim objMyCmd As ADODB.Command 
    Dim objMyRecordset As ADODB.Recordset 

    Set objMyConn = New ADODB.Connection 
    Set objMyCmd = New ADODB.Command 
    Set objMyRecordset = New ADODB.Recordset 

'Open Connection' 
    objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=" & sqlServer & ";Database=" & _ 
     sqlDB & ";User ID=" & sqlUsername & ";Password=" & sqlPassword & ";" 
    Dim s As String 
    s = objMyConn.ConnectionString 
    objMyConn.Open 


'Set and Excecute SQL Command' 
    Set objMyCmd.ActiveConnection = objMyConn 
    objMyCmd.CommandText = Sel 
    objMyCmd.CommandType = adCmdText 

'Open Recordset' 
    Set objMyRecordset.Source = objMyCmd 
    objMyRecordset.Open 


Set GetDataFromADO = objMyRecordset 

おかげで私のSQL Server上の強制暗号化オプションは、トリックを行いました。

おかげラルフ:)

0

あなたはSSLやTLSを使用して、SQL Serverへのすべての接続を確保したい場合は、サーバー上のプロトコルのセットのためにyesに強制暗号化オプションを設定してもインストールする必要がありますドメインCAまたはパブリックCAによって生成された証明書。 Force Encryptionをyesに設定すると、SQL Serverから生成された自己署名証明書を使用するすべての接続が暗号化されます。これにより、中間の攻撃の男性が開かれる可能性が残されます。 CA(Certificate Authority)は、ユーザー、コンピュータ、組織のIDを証明したり、証明書を生成、管理、更新するために使用されるサービスまたはアプリケーションです。

ドメインCAによって生成された証明書を使用していると仮定します。 SQL ServerとドメインCAシステムとクライアントシステムが互いに通信できる限り、クライアントはSQL Serverとのセッションを開始し、その後、セキュアセッションの要求に応答し、生成された証明書を提示します検証のためにドメインCAサーバをクライアントに送信する。次に、クライアントは、有効な証明書であることをドメインCAシステムで検証し、デジタル署名を使用して修正されていないことを検証することによって、証明書を2つの方法で検証する必要があります。

SQL ServerでSSLを有効にする方法の基本は、データベースエンジンを実行しているサービスアカウントの証明書ストアに証明書と秘密キーをインポートしてから、サーバープロトコルのプロパティで[Force Encryption]プロパティを[ SQL Server Configuration Managerの[証明書]タブで、ドメインCAまたはパブリックCAから生成された証明書を選択します。

+0

私のサーバーにはウェブサイトもあります。 Let's Encryptで自分のWebサイトの証明書を要求し、この証明書を証明書ストアにインポートしました。だから、私はまた、私のSQL Serverのための証明書を暗号化を使用しています。それは働いているように見えます。私はTrusted_Connection = yesオプションを使用していません。欠点のみ:暗号化の有効期間は6か月間で、Webサイトの証明書ストアの元の証明書のみが自動的に更新されます – Fraxner

+0

いいですね。有効期限が切れる前にSQL Server証明書を置き換えることについて積極的に対応してください。私はそれがQAで一度起こったし、それは重要だった。 –

関連する問題