別コンピューターから SSIS パッケージを実行する方法

メモです。SQL Server エージェントを登録する方法のプログラムで実行できました。

開発サーバーにしか SQL Server が入ってなく、SSIS パッケージもそこでしか実行できないので SQL Server エージェントに実行を任せています。

手順を簡単に書くと、

  1. SSIS プロジェクトでパッケージを作成
  2. SQL Server Management Studio から SQL Server データベース に接続し、SQL Server エージェント を起動 (今後常に使う場合は OS 起動時に常に起動させる設定にしておくといいです。)
  3. ジョブを作成し、ステップに SSIS パッケージ実行を追加。今回 SSIS パッケージはサーバー内のローカルフォルダにおいてあるので ファイル システムから SSIS パッケージを選択しました。
  4. ジョブを登録したら上記リンク先にあるプログラムでバッチ プログラムを作成。接続文字列やパッケージ名は環境に合わせて変えてください。(「jobConnection = new SqlConnection("Data Source~」の部分と「jobParameter.Value = "RunSSISPackage";」の部分)
  5. 後は実行して動作するか確認
]]>

SQL Server 構成マネージャー を起動しようとするとエラーが発生して起動できない対処法

64 bit 環境で SQL Server に関連するソフトウェアのインストールやアンインストールを繰り返していると SQL Server 構成マネージャー を起動しようとしたときに

----------------------------------------------------------------------
WMI プロバイダーに接続できません。権限がないかサーバーにアクセスできません。SQL Server 2005 以降のサーバーは、SQL Server 構成マネージャーでのみ管理できます。
無効なクラスです [0x80041010]
-------------------------------------------------------------------------

image

と表示されて起動できなくなってしまう場合があります。対処法についてはマイクロソフトの公式サイトに載っています。

基本的には上記リンク先のコマンドを管理者権限で起動したコマンド プロンプトで入力すればいいのですが、どうもパスが間違っているらしく、以下のように修正する必要があります。(もちろんインストールしたときのフォルダ設定によってパスが変わる可能性もあります。)

  • 誤:mofcomp "%programfiles(x86)%MicrosoftMicrosoft SQL Server100Sharedsqlmgmproviderxpsp2up.mof"
  • 正:mofcomp "%programfiles(x86)%Microsoft SQL Server100Sharedsqlmgmproviderxpsp2up.mof"

image

]]>

ワークグループ環境の SQL Server の各機能に対しての認証の方法まとめ

ドメイン環境であれば認証はある程度 Active Directory に任せられるので楽なのですが、ワークグループ環境では各サービスごとに認証が異なっていたりなど、ハマリどころが多いです。とりあえずわかる範囲でまとめていますが(自分用)、もしかしたら間違っているところもあるかもしれませんので参考程度に見てください。

■環境

  • ローカルPC (ワークグループ or ドメイン環境)
  • サーバーPC (SQL Server インストール, ワークグループ環境)

■接続メモ

 

【SQL Server データベース】

  • Windows 認証と SQL Server 認証を選択可
  • SQL Server 認証の場合、接続文字列にユーザー名とパスワードがあればそのほかの認証は必要なし。事前に SQL Server のログインにユーザーを登録する必要はある。
  • Windows 認証の場合はローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • データベースアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • サーバーに作成したユーザーアカウントを SQL Server のログインに登録する必要あり。また、登録したアカウントに対してデータベース、テーブルなどそれぞれアクセスできる権限を設定する必要あり。

 

【Analysis Services】

  • Windows 認証一択
  • ローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • キューブアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • キューブに接続できるユーザーを指定したロールを作成する必要あり。

 

【レポート マネージャー】

  • Windows 認証一択
  • レポート マネージャーに接続する際に認証ダイアログが表示されるが、サーバーに登録されているユーザーを入力すれば認証可能。ローカルに同じユーザーを作る必要はない。これはレポートマネージャーが Web システムであり、実行するプログラムの実態がサーバーにあるため。
  • レポートビルダーからレポートサーバーにアクセスする場合も、サーバーに登録されているアカウントを指定すれば認証可能
  • レポート マネージャー、レポートにアクセスできるユーザーは、レポートマネージャーでフォルダ、ファイル単位に設定

 

足りない項目は後で追加するかもしれません。また何か違う内容、または追記すべき項目があればコメントください。

]]>

SSIS で Excel ファイルを読み込む際に IMEX パラメータを使用する方法

メモです。

接続マネージャーで「Excel 接続マネージャー」を作成後、Excel 接続マネージャーを選択しプロパティを表示する。

プロパティから「ConnectionString」の項目を探し、接続文字列に直接「IMEX=1」を追加する。

【例】

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES";

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:xxxyyy.xlsx;Extended Properties="EXCEL 12.0;HDR=YES;IMEX=1";

]]>

[Reporting Services] レポート マネージャーに管理者としてアクセスする方法

Windows Vista や Windows Server 2008 など、UAC の構成がある環境に Reporting Services をインストールした場合、Administrators の権限のあるユーザーでレポート マネージャーにアクセスしても、権限がないとエラーが表示されることがあります。原因はもちろん UAC によるものです。

管理者権限でレポート マネージャーにアクセスするひとつの方法としては、Internet Explorer を管理者権限で実行することです。Internet Explorer の実行ファイルを右クリックして「管理者として実行」を選択すればレポート マネージャーに管理者としてアクセスできます。(管理者権限のままほかにサイトに移動するのは危険なので注意してください)

しかし、毎回管理者権限で実行するのが面倒であれば以下の設定をすることにより、管理者権限で Internet Explorer を実行しなくてもレポート マネージャーに管理者としてアクセスできます。

  1. Internet Explorer を管理者権限で実行する。
  2. レポート マネージャーのサイトにアクセスする。Reporting Services インストール環境で操作する場合、localhost ではなく、サーバー名、または IP アドレスを指定してください。
  3. 「ツール」「インターネットオプション」「セキュリティ」「信頼済みサイト」を選択して、レポート マネージャーのサイトを登録してください。(localhost だとすでにイントラネットに含まれているので追加できません)
  4. レポート マネージャーのホームから「フォルダーの設定」「セキュリティ」「新しいロールの割り当て」を選択し、アクセスするユーザー名を「<domain>/<user>」の形式で入力し、「コンテンツ マネージャー」のロールを与えて追加します。
  5. レポート マネージャーから画面右上の「サイトの設定」を選択し、「セキュリティ」「新しいロールの割り当て」を選択、ユーザーに「<domain>/<user>」を入力して「システム管理者」のロールを割り当てて追加します。
  6. Internet Explorer を閉じ、今度は管理者権限で起動せずにアクセスし、管理者としてレポート マネージャーにアクセスできるか確認してください。(場合によってはページにアクセスする際認証を求められることがあります)
]]>

SQL Server Management Studio の編集でテキストフィールドに改行をいれる方法

SQL Server Management Studio の行編集で使用されるグリッド入力ではテキストに改行を入れることはできません。そのため、下のように SQL でこつこつと更新をかける必要があります。

update [Table1]
set [テキスト] = N'テキストに
改行をいれ
ます'
where [キー] = 1;
]]>

SQL Server 2008 インストール時に「サービス´SQLBrowser´の開始要求に失敗しました。」と表示されてインストールに失敗する場合の対処法

■環境

  • Windows Server 2003 R2 Standard SP2
  • SQL Server 2008 Standard

■エラー内容

SQL Server のインストール設定を行い、インストールを開始しようとすると「サービス´SQLBrowser´の開始要求に失敗しました。」とエラーが表示されてインストールが中断される。

■原因

「MSXML 6 Service Pack 2 (KB973686)」がすでに Windows にインストールされている状態で SQL Server 2008 をインストールしようとすると、古い MSXML 6 をインストールしようとして失敗する。

■対処法

SQL Server 2008 をインストールする前にあらかじめ MSXML 6 SP2 をアンインストールしておき、SQL Server 2008 をインストールする。SQL Server インストール後、Windows Update 等で MSXML 6 SP2 をインストールする。

もし、SQL Server 2008 をインストールしようとして失敗している場合は、先に SQL Server の各コンポーネントをアンインストールしてから MSXML 6 SP2 をアンインストール。その後 SQL Server 2008 をインストールして対処する。

]]>

SSAS でメタデータ マネージャーのエラーが発生して処理や削除が行えなくなった場合の対処法

※ここに書いている手順は正式な回避方法ではないので自己責任でお願いします。

 

【環境】

  • SQL Server 2008 R2 SP1
  • Windows 7 64bit

 

【エラーの内容】

SSAS プロジェクトで処理や配置、また、Analysis Services サービスでデータベースを削除しようとしたときなど、Analysis Services サービスにかかわるほとんどの操作を行おうとしたときに以下のようなエラーメッセージが表示されて処理が中断される。

====================================================
メタデータ マネージャーでエラーが発生しました。
ID 'XXXXXX'、名前 'XXXXXX' のディメンションが
'XXXXXX' キューブによって参照されていますが、このディメンションは存在しません。
メタデータ マネージャーでエラーが発生しました。
XXXXXX cube を ファイル '\?C:Program FilesMicrosoft SQL Server
MSAS10_50.MSSQLSERVEROLAPDataXXXXXX.0.dbXXXXXXX.999.cub.xml'
から読み込み中に、エラーが発生しました。
(Microsoft.AnalysisServices)
=====================================================
※ XXXXXX は環境により異なる

【発生する原因】

不明。SSAS プロジェクトでエラーとなる不正なデータを配置すると発生する?

【回避手順】

  1. SQL Server Management Studio から Analysis Services に接続し、ツリートップにある Microsoft 分析サーバーの右クリックメニューから「停止」を選択して  Analysis Services を停止させる。
  2. エクスプローラーより「C:Program FilesMicrosoft SQL Server
    MSAS10_50.MSSQLSERVEROLAPData」フォルダを開き、エラーの発生するデータベースの以下のフォルダ・ファイルをリネームするか削除する
    ・XXXXXX.0.db フォルダ (0 は任意の数字)
    ・XXXXXX.99.db.xml ファイル (99 は任意の数字)
  3. SQL Server Management Studio から Analysis Services のツリーノードを右クリックし、「開始」をクリックする。
  4. 削除されている SSAS データベースをVisual Studio から再配置する(エラーは訂正しておくこと)。
]]>

クライアントに表示される特定のディメンションの属性を非表示にする方法 [SQL Server Analysis Services]

キューブとディメンションを作成しクライアントに公開する際、不要なディメンションの属性が公開されてしまう場合があります。特にキーとなる属性は公開しなくてもいい場合がありますが、ディメンションのキーとなるため削除するとディメンションとして成り立たなくなってしまいます。

クライアントに公開したくない場合は以下の設定で非公開にできます。(見えないだけなのでディメンション上では存在することになります)

【手順】

  1. 作成したディメンションを開く
  2. 「ディメンション構造」のタブを選択し、属性の項目から非表示にした属性を選択
  3. 属性を右クリックしメニューから「プロパティ」を選択
  4. プロパティから「詳細設定」グループの「AttributeHierarchyVisible」を「False」に設定
]]>