一応、SQL-Server 2014 Expressから、オンラインストレージの「One Drive」上に置いたExcelのワークシートをテーブルとして読み込む所までやりましたんで、それについてちょっと書かせて頂きたいと思います。
ちなみに、認証方法は、Windows認証ではなくてSQL-SERVER認証でやってみました。
今回の記事では、SQL-Server 2014 EXPRESSをインストールした後の話からスタートさせて頂きたいと思います。
64bitのSQL-Serverから、Excelのワークシートをテーブルのように扱うためには、「Microsoft.ACE.OLEDB.12.0」というOLEDBプロバイダが必要です。
これ、MS Officeがプリインストールされているパソコンなら、実は既にインストールされているはずなんですが、私のパソコンはそうではないので、単体でマイクロソフトのダウンロードサイトから入手する必要がありました。
URLは以下の通りなんですが、マイクロソフトはしょっちゅうURLを変えるので、いつまでリンクされているかは未知数です。
Microsoft.ACE.OLEDB.12.0はこちら
ちなみに、32bitでは「Microsoft.JET.OLEDB.4.0」も使えるのですが、64bitでは廃止になってしまいました。
OLEDBプロバイダをインストールしただけでは実は使えません。
以下のコマンドを実行して、使用許可をする必要があります。
EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'Ad Hoc Distributed Queries', 1 RECONFIGURE USE master EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
このあたりはお約束ですね。
さて、One Drive上に置いたExcelファイルを読み込みます。
その前に、マイクロソフトのOne Driveは、Windows 8.1ならば標準でOSに統合されているのですが、Windows 7はそうではないので、マイクロソフトから専用のアプリをダウンロードしてインストールします。
すると、UNC形式でOne Driveのディレクトリを指定可能になります。
・・・ですが、SQL-Server認証の場合は、ファイルを設置しただけでアクセスに行くと、One Driveの目的のフォルダにアクセス権が無いために、スクリーンショットのように「メッセージ 7399、レベル 16、状態 1、行 1 リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" により、エラーがレポートされました。プロバイダーからエラーに関する情報を取得できませんでした。 メッセージ 7303、レベル 16、状態 1、行 1 リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" のデータ ソース オブジェクトを初期化できません。というエラーが出てだめです。
自分のPCなのにアクセス権が無いとはこれいかに!?と思われるでしょうが、SQL-Server認証の場合は、自分のアカウントではなくて、あくまでもSQL-Serverのアカウントでフォルダにアクセスに行く、という動きになるのです。
そのアカウントは何かというと、SQL-SERVERの構成マネージャを開き、自分が立てたサーバー(私の場合は名前付きインスタンスで、SVR1としていますが)のサービスのプロパティを開き、そこのアカウント名を調べます。
私の場合は、SVR1という名前付きインスタンスでサーバー立てたので、アカウント名はMSSQL$SVR1となっていますが、目的のフォルダに、このアカウントの読み取り権限を与えてあげればOKです。
アカウントですが、これはケースバイケースで、たとえば、環境によっては、ビルトインアカウントのネットワークサービスだったりします。
その場合は、ビルトインアカウントのネットワークサービスに読み取り権限を与えればOKです。
すると、One Drive上のExcelのワークシートを、まるでテーブルのように扱う事が可能になりました。
繰り返しになりますが、SQL-SERVER認証の場合は、自分のWindowsのアカウントではなくて、SQL-SERVERのアカウントでフォルダにアクセスして行く、という動きになります。
SQL-SERVERのアカウントは、環境によって変わるので、そこは構成マネージャでチェックしておくとよろしかろうと思います。
ちなみに、やっぱり、4コア8スレッドのCore i7は快適ですね!!
自宅では、SQL-Serverで負荷のかかる処理なんかとてもやらないですけど、起動から何からサクサクです。
15.6インチノートのゆったり感もあって、このまま仕事しても全然違和感ないくらいだったりします。
ただ、SQL-SERVER 2014と言えば、Core i7ももちろん良いのですが、モバイル!!
そう、Atom Z3740搭載の、小型8インチのWindows 8.1タブレットで動かす方が、意外性がある分、新鮮であり感動スケールは大きいですね。
ちらっとした電卓の感覚で、バリバリのSQL-SERVER 2014 EXPRESSを使えてしまう衝撃は、実際に味わうとくせになります!!