2009-04-03 4 views
1

これは後ろに聞こえますが、資格情報で接続する前にSQLサーバーがどの認証モードを使用しているのか判断できるようにしたいと考えています。これは可能ですか?あなたが興味を持っている場合は接続する前にSQLサーバーが設定されている認証モードを判別できますか?

、私は簡単に理由を説明しましょう...私たちの製品のユーザーの

大半は、知って理解し、さらには彼らのビジネスアプリケーションの基礎となるデータベースを気にしないでください。従来、インストールの一環としてSQL Server 2005 Expressをサイレントモードでインストールし、アプリケーションにSQLユーザーとパスワードを埋め込んでいました。過去10年間に販売した「Ma and Pa」企業の大多数にとって、これで十分でした。

セキュリティ上の懸念がより顕著になり、当社の製品は、既存の既存の(事前の「セキュリティ上の問題」を含む)一部の大規模なユーザー(ITコンサルタント、私たちの製品 "がインストールされている)SQLサーバーは、より柔軟に既存の環境に適合させる必要があることがわかりました。

私はそれに問題はありませんが、SQL Serverの認証方法、ユーザー名とパスワードなどをインストール時に「最小公約数」ユーザーに強制したくありません。

これがすべて難しい場合は、開始する前に失ってしまいます。

私は、アプリケーションがサーバがどのモードで実行されているかを素早く簡単に判断し、接続文字列を適切に構築できるようにしたいと考えています。

現在のところ、試行錯誤を使用しています.Windows認証で接続しようとしていますか? =良い、失敗? = SQLと既知のユーザー名/パスワードで接続しようとしていますか? =良い、失敗?このシナリオでは内容が変更されている必要があり、そのために何をしているのかが分かっているため、資格情報を要求します。

「試行錯誤」は唯一の方法ですか、または資格情報で接続する前に認証モードを確認する方法がありますか? (価値のあるものにc#とsql2005を使用)

+0

"私たちの製品のユーザーの大部分は*知りません..." – GuyBehindtheGuy

答えて

0

価値があるのは、接続を試みる前に認証モードをチェックするのがよく分かりません。

認証モードがWindows認証の場合、現在のユーザーのIDにログイン権があるかどうかを接続するまではわかりません。

認証モードが混在認証の場合は、指定したアカウント&のパスワードが動作する保証はありません。そのため、代替案はありませんが、試行錯誤を使用するとは思われません。

+0

ええ、ありがとう - 私もその気持ちを感じます。 モードが何であるか知りたい唯一の理由は、適切な接続文字列を作成することができるため、ログイン権がないために接続に失敗しても有効な結果です。 –

+0

私は試行錯誤の方法に固執します。それは最も信頼できるでしょう。 – mrdenny

+0

私はこの答えに完全に同意しません。セキュリティ上の理由から、マイクロソフトは通常、クライアントに18452または18456エラーのみを返します。これは、問題が混在モード認証、つまり接続の問題の一般的な原因によるものかどうかを判断するのには不十分です。したがって、SQL Serverのユーザー名とパスワードで接続しようとする前に混合モードが有効になっているかどうかをプログラムで判断できるため、ユーザーエクスペリエンスが向上します。誰も元の質問に答えることができますか? – GuyBehindtheGuy

関連する問題