Kerberos Configuration Manager for SQL Server

  神谷 雅紀 SQL Server Escalation Engineer       リンクサーバーなど複数のサーバー間で資格情報の受け渡しが必要となる処理を行おうとした場合、Kerberos を用いた認証が必須になります。しかし、Kerberos 認証を行うためには、いくつかの設定が必要です。それらの設定が正しく行われていない場合には、資格情報の受け渡しが行えず、正常に機能しません。 先日、Kerberos の設定に関わるトラブルシューティングを行うためのツールを公開しました。 ツールは、以下の URL よりダウンロードすることができます。   Microsoft® Kerberos Configuration Manager for SQL Server® http://www.microsoft.com/en-us/download/details.aspx?id=39046   使い方は非常に簡単で、KerberosConfigMgr.exe を実行した後、Connect メニューで対象サーバーへ接続します。サーバー名やユーザー名を指定せずに接続すると、ローカルサーバーに接続します。設定の確認に必要な操作はこれだけです。 接続すると、以下のように、そのサーバー上の SQL Server インスタンスとサービスアカウントに関して、SPN の登録状態や委任 (Delegation) の設定状態が表示されます。       表示されている内容を確認し、不足していたり、誤った設定が報告されている場合には、それを正します。 委任の設定については手動で行う必要がありますが、SPN に関しては、ツール実行者に権限があれば、ボタン一つで必要な SPN 設定を行うことができます。          

0

Troubleshooting Connectivity #5 – セッション確立までの動作

    高橋 理香 SQL Developer Support Escalation Engineer   こんにちは。 四半期に一回のペースでしかアップできていないのですが、この Troubleshooting Connectivity シリーズはまだネタはあるので、もう少し続けたいと思います。   さて今回ですが、Troubleshooting Connectivity #1 でご説明した接続 3 過程のうちの OS レベルのセッション確立の試行までの動作についてご紹介します。わかりやすくするために、TCP/IP プロトコルを使用した場合を例に説明します。   TCP/IP のセッションを確立するために必要な情報とは何か (復習) TCP/IP プロトコルを使用して SQL Server との間にセッションを確立するためには、SQL Server が動作するサーバーの IP アドレス (フェールオーバー クラスタ構成の場合には、SQL Server 用に割り当てた IP アドレス) と待ち受けているポート番号が必要です。 SQL Server 7.0 までは、そもそも同一マシン上に複数インスタンスをインストールする機能はなかったので、SQL Server のポート番号といえば 1433 でよかったのですが、SQL Server 2000…

1

[SQL Database] 接続タイムアウトの発生を改善したい

  高原 伸城 Support Escalation Engineer   皆さんこんにちは。 SQL Server/Windows Azure SQL Database サポートを担当しております 高原 です。 今回は、Windows Azure SQL Database に関するお問い合わせの中で、よくあるお問い合わせの一つを紹介したいと思います。   [質問] オンプレミス上のマシン(Web サーバー) や、Windows Azure 上の Web ロールから Windows Azure SQL Database へ接続する場合に、接続タイムアウト (Connection Timeout) が発生する場合があるが、接続タイムアウトの発生を軽減させる方法はあるか?   [回答] Windows Azure SQL Database へ接続するアプリケーション側で、接続タイムアウト値を延ばす ことにより、接続タイムアウトの発生を軽減させることが可能となります。 Windows Azure SQL Database は、マルチテナント構成となっており、複数のお客様により、Windows Azure SQL Database 物理マシンのリソース…

0

[Linux] BCP で 2GB 以上のサイズのファイルをインポートするには

横井 羽衣子 (よこい ういこ) SQL Developer Support Engineer 皆さんごきげんよう。本日は、Microsoft ODBC Driver 11 for SQL Server – RedHat Linux に含まれる BCP についてのお話です。 これまで、以前のバージョンに含まれる BCP では、インポートファイルのサイズが 2GB を超えたファイルについては、分割の上インポートする必要がありました。これに対し先日、11.0.2270.0 がリリースされ、2GB 以上のファイルを一括してインポートすることができるようになりました。 Microsoft® ODBC Driver 11 for SQL Server® – RedHat Linux http://www.microsoft.com/en-us/download/details.aspx?id=36437 Version: 11.0.2270.0 Date published: 1/15/2013 Linux ベースの OS において、BCP で大容量ファイルを取り扱われる際は、上記に差し替えていただき、ご対応ください。 参考 1 : 文字コードにご注意ください SQL Server…

0

Windows Azure で、Web ロールで特定のバージョンの SQL Server Native Client を常に使えるようにする方法

  横井 羽衣子 (よこい ういこ) SQL Developer Support Engineer 皆さんごきげんよう。今日は、みんな大好き Windows Azure で、Web ロールで特定のバージョンの (Guest OS に入ってるより新しいバージョンなど) SQL Server Native Client を常に使えるようにしたいときにはどうしたらいいか?というお話しをご紹介します。 PHP などで、ODBC 接続を使いたいシナリオがあります。こんな時、SQL Server Native Client を使って接続します。Windows Azure SQL Database のポータルで接続文字列をコピーするときも、いろいろ選べますが、SQL Server Native Client が文字列に入っています。しかし、オンプレミスの OS 上で動作するアプリケーションと異なり、Windows Azure であることを考慮したポイントがあります。今日はそれらの注意点などを踏まえながら、SQL Server Native Client を使えるようにする方法を見ていきましょう。 最初に : Windows Azure のロールとゲスト OS の関係 Visual Studio で…

0

Troubleshooting Connectivity #4 – 接続エラーの調査方法

  高橋 理香 SQL Developer Support Escalation Engineer   こんにちは。 SQL Server への接続シリーズも今回で 4 回目となりました。だいぶ時間空いてますけど、その点はご容赦ください。。。 それでも、少しでも、読んでくださっている皆さんのお役に立っているといいなと思う今日この頃です。 Troubleshooting Connectivity #1 – SQL Server への接続 Troubleshooting Connectivity #2 – エラー情報からわかる失敗原因 Troubleshooting Connectivity #3 – 予期しない接続切断 さて今回は、これまでの Troubleshooting ではなんとかならなかった、もしくは、きちんと裏を取ってから対処を行いたい、という場合にどんな情報を採取したらよいかについてご紹介したいと思います。また、実際のログなどを例に調査ポイントを説明します。 1. SQL Server への接続失敗についてまず確認すること 基本的には一般的なトラブルシューティングの場合と同様に 5W1H で考えてみましょう。 ログ採取は時には負荷を伴う場合もありますので、そういった場合には、これらの情報を頼りに、採取すべき情報の最小化を検討することになります。 WHAT (発生している現象) : どのようなエラーが発生するか。もしくは、何を見て接続の問題と判断したか。 WHERE (現象発生環境の範囲) : ツールやアプリケーションをどこで実行しているか。(SQL Server が動作しているサーバー上か、それとも、リモートのクライアントか。) クライアントも複数存在する場合にはそれら全部かそれとも一部のみか。…

1

[SQL Connectivity] Case Study : クラスタ化された構成の SQL Server 2008 Service Pack 1 以前のバージョンの名前付きインスタンスに Windows Vista 以降から接続できない

横井 羽衣子 (よこい ういこ) SQL Developer Support Engineer – Data Access 皆様ごきげんよう。本日は、「クラスタ化された構成の SQL Server 2008 Service Pack 1 以前のバージョンの名前付きインスタンスに Windows Vista 以降から接続できない」という現象についてお知らせいたします。 【今日のお題】 名前付きインスタンスが動作しているクラスタ化された SQL Server の環境に対し、Windows XP からは正常に接続ができるのに、Windows Vista 以降では接続時に以下のエラーが発生してしまう。なお、SQL Server Browser サービスを用いて接続することを想定している。 SQL Server のバージョンは、2005 と、2008 サービス パックなしの環境でも同一の事象が発生する。 接続できませんでした。 SQLState: ‘01000’ SQL Serverエラー: 11004 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(Connect()) 接続できませんでした。 SQLState: ‘08001’ SQL…

0

[SQL Connectivity] Case Study : 認証 DC ダウン時の SSPI エラーについて

横井 羽衣子(よこい ういこ) SQL Developer Support Engineer 皆様ごきげんよう。今日は、接続できない系問題の一つをご紹介いたします。 【今日のお題】 複数台ドメイン コントローラ (DC) がある環境でサーバーメンテナンスをした。その時一台の DC だけが再起動処理に入ったタイミングで、ドメイン内の SQL Server に Windows 認証で接続を試みたら、なぜか “SSPI コンテキストを生成できません” エラーが返されて接続できなかった。 せっかく DC が複数台あるんだから、一台が使用不可の場合においても、自動的にその他の稼働中の DC に接続し、処理が行われるものじゃないの? なんで DC が複数台あってこんな現象が発生するの?? これは「SQL Server が最初にアクセスする認証 DC がダウンしているタイミングで認証処理をしにいくと、生存中の他の DC へ問い合わせを切り替える動作に時間がかかるのでタイムアウトしちゃう」という話となります。 DC がダウンしている状況下において SQL Server に対して接続を実施したり、ADSI などの DC で認証を行うアプリケーションなどで一般的に発生し得る現象です。例えば、SharePoint など、SQL Server をバックエンドに持つ環境でも影響を受けます。 はじめに : SSPIエラーとは SQL Server に…

0

Microsoft SQL Server JDBC Driver は Android OS をサポートしない

横井 羽衣子(よこい ういこ) SQL Developer Support Engineer 皆様ごきげんよう。今日は、Microsoft SQL Server JDBC ドライバは Android OS で動くか?という点についてお送りします。 【今日のお題】 Microsoft SQL Server JDBC ドライバを使って SQL Azure とかにつなぎたいの!出来る?出来ない? 端的に申しますと、残念ながら弊社 JDBC ドライバは Android OS 上では事実上使うことが出来ません。 また、製品として使用されることも想定されていません。将来的にサポートされる予定も現時点ではありません。(2012/10 月現在) Microsoft JDBC Driver 4.0 for SQL Server http://www.microsoft.com/ja-jp/download/details.aspx?id=11774 サポートされているオペレーティングシステムは、上記リンクにてご確認いただけますが、下記の通り Android OS は含まれておりません。 システム要件 サポートされているオペレーティング システム: Linux, Unix, Windows 7, Windows Server 2008 R2,…

0

[ADO.NET/SNAC] イニシャル パートナーがダウンしている場合、フェールオーバー パートナーに接続できる確率を高める方法

佐藤 靖典 SQL Developer Support Engineer こんにちは。 ADO.NET (System.Data.SqlClient) や SQL Server Native Client (SNAC) から、データベース ミラーリング構成の SQL Server を利用したシステムを開発・運用されているお客様はたくさんいらっしゃいます。 この記事では、データベース ミラーリング構成の SQL Server  を使用したシステムの可用性を、クライアント アプリケーションの設定で更に高める方法を紹介します。 1. シナリオ イニシャル パートナーのマシンをシャットダウンしている状態で、アプリケーションからデータベース ミラーリング構成の SQL Server に接続試行した場合、接続エラーが発生することがあります。 ADO.NET では、次のような例外を受け取ります。 System.Data.SqlClient.SqlException サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 – SQL Server への接続を開けませんでした) 開発者・運用者の方は、SQL Server をミラー構成にしているんだから、フェールオーバー…

0