PASSJブログ

現在は、テスト運用中です。

問い合わせ:PASSJ 事務局

このサイトは、Scott Water さんが開発した .TEXT を利用しています

Powered By:

検索

Google
Web
blogs.sqlpassj.org

関連サイト

投票


コメント書き込み
[今週の投票]

Syndication

Blog 利用状況

Bloggers (投稿数, 最終投稿日)

最新の投稿

2008/5/31(土) 新宿: データベースセキュリティ講座

今月末、PASSJ アフタースクールを開催します。

 「データベースセキュリティ講座」
 日時: 2008/5/31(土) 13:00-17:00
 場所: マイクロソフト新宿 5F

セッション:

  1. 最新インターネットセキュリティ (株式会社ラック様)
  2. データベース監査入門 (株式会社システムエグゼ様)
  3. 最新のセキュリティ傾向 (JPCERT コーディネーションセンター 様)

今、多くのWeb改ざんの原因となっている SQL インジェクションと、内部統制・情報漏洩対策で必要となるデータベース監査をテーマとしています。
講師は、現場で顧客対応をされた経験をお持ちなので、いろいろ面白いお話をしていただけると思います。

posted @ 2008/05/16 11:23 by 河端善博

『INETA Day 2008~コミュニティパワーをリアルに体験しよう 』 セッション資料公開

2008年5月17日(土)  『INETA Day 2008~コミュニティパワーをリアルに体験しよう 』

下記サイトでセッション資料が公開されています。
参加者の方は、事前にダウンロードをしておくことをおススメします。

http://www.ineta.jp/tabid/173/Default.aspx

現在公開中のセッション資料

  【セッション トラック2 / コミュニティ トラック

  13:45-14:25
  セッション 2-2 「Silverlight 2 が照らす明るい未来」

  スピーカー: 池原 大然 (アイネタビューロ・スピーカー)
  Silverlightの次期版であるSilverLight 2.0の関連情報について解説します。

  15:15-15:55
  セッション 2-4
 
「XNA Game Studio 2.0 によるゲーム開発」
  登壇コミュニティ: WisdomSoft (
http://wisdom.sakura.ne.jp/)
  スピーカー: 赤坂 玲音
  概要: XNA の概要、環境作り、開発モデルなどを説明します。どのようなゲームを作れるかサンプルを通じて
  体験していただきます。また、通常のアプリケーション開発とは異なるゲーム独特の開発モデルや、XNA の
  ゲーム以外での応用方法などについても紹介します。

小川さんのセッション資料は、最後のバナーから。
上記のサイトでは、まだ公開されていないので、PASSJ での公開が一番早い!!
当日の参加者は、早めにダウンロードをどうぞ。
75分では足りないくらいの濃密なセッションタイムが過ごせます。

  小川さんセッションダウンロード

posted @ 2008/05/16 1:57 by あつ子@東雲

5/31(土)開催 「データベースセキュリティ講座」土曜 1 日集中コース

■概要

 * 講師:川口洋 氏(株式会社ラック)、関口達也 氏(株式会社 システムエグゼ)、小宮山 功一朗 氏 (JPCERT コーディネーションセンター)
 * 司会:河端善博 氏(PASSJ 理事・セキュリティ分科会ボードリーダー)
 * 日付:2008 年 5 月 31 日(土)
 * 時間:13:00-17:00 (受付開始時間 12:30)
 * 会場:マイクロソフト(株)新宿オフィス 5 階セミナールーム
 * 定員:80 名
 * 申込:< https://www.sqlpassj.org/makeanc/anc_input1.aspx?gro=0&anc=194 >
 * 受講料: \3,000-
 * テキスト:当日配布します
 * 受講対象:セキュリティ担当者

■内容
データベースセキュリティとして、今、関心の高いテーマである
「SQL インジェクション」と「データベース監査」「最近のセキュリティの傾向」について、
現場の状況を含めて解説します。

 *1. 「最新インターネットセキュリティ ~ 3 月 12 日の事件の舞台裏 ~」
   講師: 株式会社ラック
      JSOC チーフエバンジェリスト 兼 セキュリティアナリスト
          川口 洋(かわぐち ひろし)氏,CISSP
      < http://www.lac.co.jp/business/jsoc/ >
   講座概要:
          JSOC は顧客ネットワークを護るため 24 時間 365 日休むことなく動き
          続けています。
          1 日 2億~3億 のログが集約される JSOC は日々多数のセキュリティ
          インシデントに対応しています。インターネットから止まることなく攻撃
          が行われており、その攻撃手法や攻撃の対象も変化しています。
          特に 2005 年以降、ウェブアプリケーションを狙った攻撃やマルウェアの
          進化が進み、多数のお客様において被害が発生しています。
          JSOC で対応したインシデントを元に、最近のインターネットセキュリティ
          の現状と2008年3月12日に大騒ぎになったあのインシデントの舞台裏も解
          説します。


 *2. 「データベース監査入門」
   講師: 株式会社 システムエグゼ プロダクトソリューション部
     関口 達也 氏 < http://www.system-exe.co.jp/ >
   講座概要:
          昨今、個人情報保護対策および内部統制対策にてデータベースへのアクセ
          スログを取得し、監査に利用される企業が増えてきております。
          SQL Server では、SQL Server プロファイラを利用しアクセスログの取得
          を行い、監査に必要な環境を構築する事が可能です。
          本セミナーでは、データベース監査を行う為のアクセスログ取得方法、
          および分析までの手順をご紹介します。
          また、SQL Serverプロファイラをより簡便に利用し、監査レポートを作成
          できるデータベース監査ソリューションのご紹介、およびご導入企業での
          利用例などを合わせご紹介致します。
   参考:
          SQL Server 監査ソリューション
          < http://www.microsoft.com/japan/sql/audit/default.mspx >

 

  *3. 「最近のセキュリティの傾向」
     講師:JPCERT コーディネーションセンター 情報セキュリティアナリスト
     小宮山 功一朗 氏,CISSP < http://www.jpcert.or.jp/ >
    
     講座概要:
     コンピュータインシデントの動向及びそれに対する対策は刻々と変化をし
   ています。
     データベースセキュリティに限らず最近のコンピュータインシデントの動
   向と質的変化、そしてさまざまなアプローチによる対策を紹介します。
   また一連のSQLインジェクションに対する JPCERT/CC の取り組みについ
   て紹介します。

※順不同。順序等・時間配分については追って告知させていただきます。

▼ 申込ページはこちら(ログイン後に申込ページが表示されます)
※5 月 15 日(木)21:00 より受付開始
< https://www.sqlpassj.org/makeanc/anc_input1.aspx?gro=0&anc=194 >

posted @ 2008/05/15 13:57 by アフタースクール

INETA Day 2008 に小川さんが登場

今週末 5/17(土) のイベント 『INETA Day 2008~コミュニティパワーをリアルに体験しよう 』 に
小川さんが、登場されます。
最新製品トラックの 2 コマ目です。

セッション トラック1 / 最新製品トラック

14:30-15:45
セッション 1-2 「PASSJ から見る SQL Server 2008 の新機能」
コミュニティ:  SQL Server ユーザーグループ (
http://www.sqlpassj.org/)
スピーカー: 理事/分科会担当 小川 貢(おがわ・みつぎ)
概要:  SQL Server 2008 の新機能をご紹介します。
参加対象者: SQL Server 2008 をこれから使用される方、あるいはSQL Server 2008 に興味のある方。

このイベントは、SQL Server だけでなく、Visual Studio、Windows Server、WPF、Silverlight、PowerShell、XNA など、
盛りだくさんの内容になっています。なんと、オブジェクト指向プログラミングの初級チュートリアルも開催。

イベントの詳細と申し込みは、下記サイトからどうぞ。
  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032376839&Culture=ja-JP

残席もあとわずか!!
セッション終了後には、懇親会もありますので、皆さんもぜひご参加ください。

小川さん初の SQL Server 2008 のセッション。楽しみですね。

posted @ 2008/05/15 1:59 by あつ子@東雲

Datetime型で、あれれ~?

私の部で扱っているシステムと、他部署のシステムとの間で、データ連携をするため、主にSSIS(Integration Services)を利用しています。

また、主に相手側とのデータの受け渡しは、DBのコネクションではなく、Http/Httsが中心です。データのプロトコル、フォーマットXML-RPCの場合もあれば、CSV、Soap の場合もありますが、基本的にSSISのタスクで処理可能です。ちょっと具体例が少ないのが悲しいのですが、なんとかタスクを組み合わせてパッケージ作成、Agentジョブに登録して実行させています。

さて、そんなある日。

いつも問題なく稼働していたデータ受渡しのジョブが、ある日失敗してしまいました。相手は、Soap経由でデータをもらっているシステムです。

失敗したのは、Webサービスタスクの部分。

パッケージをVisual Studioで実行してみると、なるほど失敗してしまいます。Webサービスタスクから返って来るエラーは、こんな感じ。

[Web Service Task] Error: An error occurred with the following error message: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: Could not execute the Web method. The error is: There was an error generating the XML document...... (実際は日本語です)

プロトコルにはHttpsを使っているのですが、同じWebサービスで提供している他のメソッドは、Webサービスタスクで処理しても問題はありませんでしたので、証明書切れなどの問題ではなさそうです。

問題のメソッドだけが、プロトコルにはHttpsを使っているのですが、同じWebサービスで提供している他のメソッドは、Webサービスタスクで処理しても問題はありませんでしたので、証明書の問題ではなさそうです。

問題のメソッドだけが、Webサービスタスクを通して呼び出すと、非常に長い時間処理待ちになり、ついには上記のエラーを出して止まってしまいます。実行されると返ってくるデータ量が多いメソッドなので、もしかしたらデータ量が多すぎてタイムアウトしちゃうんじゃないかしら.....とも思いました。

さて、相手のシステム担当者に状況を聞いてみると、先方の環境では、テストしても問題はないとの事。(Rails環境で作ったWebサービスなので、Railsのテストクライアントでチェックしてもらいました。)

でも、こちらでは失敗するのは変わらず。このデータ取り込み用のWebサービスがうまくいかないと、残りの関連するジョブを実行できません。

やっていることは、Webサービスを実行し、結果をXMLとして保存し、そのデータをXSLTを使って(XML変換タスクで)CSVに変換、CSVファイルを同僚の担当するジョブに渡すというもの。

要は、Webサービスの結果をCSVに変換できれば良いので、とりあえず代替として、相手のシステム担当者の環境にあわせ、RubyのコードでWebサービスを呼び出し、想定しているフォーマットでデータを取得し、CSVに書き出すことにしました。

#RubyのコードでWebサービスの呼び出しを行うのは、結構簡単だったので、ちょっと驚きましたが(^^;


さて、なんとか代替案を使って同じようなCSVが生成できたので、次に同僚のジョブを実行してもらいました。

そうしたら、同僚のジョブの側でもエラーが発生。(これもSSISのパッケージで作ったもので、CSVからDBのテーブルに格納するというものです)

エラーのリダイレクトなどで問題になるデータが何かチェックしたところ、どうやら、とある「日付」のデータで変換エラーが発生していることが分りました。失敗前の取り込み結果との差分を見ると、このデータが登録された日以降、ジョブが失敗するようになっていました。

問題の日付データは、なんと、「20080-04-01」となっていました。この列をSQL ServerのDATETIME型の列に取り込む際に、変換できずに失敗してしまったようです。(YYYY-MM-DDでは無いので。また、SQL ServerのDATETIME型だと、9999年までしかサポートしてないようですし)

?結局、このデータが悪さをしているんだろうな、という予感がしました。もちろん、そういう(途方もなく先の)日付があるのも間違いでは無いでしょうけれど...。

Webサービスのメソッドも、WSDLに従うと、この列はxsd:dateになっています。W3Cの決まりに従うと、フォーマットは"YYYY-MM-DD"でないといけないので、このフォーマットにマッチしないため、Webサービスタスクが失敗したのかなと判断。

相手方のシステム担当者に「このデータって、間違いじゃないですか?」と問い合わせ、実際入力ミスだったようですので、データの修正をしてもらったところ、あっさりとWebサービスタスクのエラーが解消されてしまいました....。


ただ、相手側も、日付情報はCHAR(String)ではなく日付型などでDB上にデータを格納しているはず。Railsで生成されたWSDLも、おそらくDBのデータ型に沿ってDATETIME型にしているはずです。

ふと、先方のDBがなんだったか思い出すと、PostgreSQL。

ちょっと調べてみると、日付をサポートする型には2つあるようで、TIMESTAMP型とDATETIME型が。PostgreSQLでのTIMESTAMP型は2038年までのようですが、DATETIME型は、どうやら「無制限」のようです(^^;

おそらく相手のシステムでも、一般的なDATETIME型を利用しているのでしょう...。SQL ServerではDATETIME型に”20080-04-01”を登録しようとすると怒られちゃいますが、PostgreSQLの場合は、入力ミスであってもデータとしては受け入れ可能な範囲で、エラーにはならないと思われますし...。

なんだか脱力でしたが、とりあえずWebサービスタスクで処理を行い、そちらが失敗した場合は、Rubyのコードでデータを生成するエラーハンドリングを追加しました。

また、CSVを生成し、処理を完了する前に、日付やフォーマットのチェックを行う処理も組み込むことにしました。その際に、こちらで受け入れられないデータが存在する場合は、相手の担当者に、エラーを通知するようにもしてみるつもりです。

posted @ 2008/05/14 13:16 by あきこ

[SQL Server 2008]SQL Server 2008 CTP Feb 2008 インストール - 苦難の道

  • [SQL Server 2008]SQL Server 2008 CTP Feb 2008 インストール

ほんと、ご無沙汰です。
死ぬほど仕事が忙しく、すべてを放置していました。。。

で、今更なんですが、SQL Server 2008 CTP Feb 2008 のインストールがうまくいかなくて非常に困っていたんですが、原因がわかりました。
インストールに失敗するのは「クライアント ツール」と「ブックスオンライン」で、他はすべてうまくいっていました。
当初、x64 上に SQL Server 2005 Express(32bit) をインストールしていたので、SQL Server 2008 のエンジンとレポーティングがインストールできず、ReadMe を参照したところ、レジストリのアクセス権が問題だと書いてあったので、それをクリアしての再チャレンジで、あれこれやっていました。
Windows Vista SP1/Windows XP SP2/Windows Server 2008 x86 すべて、Windows Server 2003 R2 SP2 x64 のすべての環境で再現していたので、どこかに問題があると思って、やっと調べ上げました。
絶対とは言い切れないのですが、ISO イメージを DAEMON Tools などにマウントしてインストールするとかなりの確率で再現します。
自己解凍形式のものをダウンロードしてインストールしたら問題なくインストールできたので、ISO イメージに含まれる Sql.cab が壊れている可能性が高いです。

最初は照合順序なのかどうなのかあれこれ試したのですが、デフォルトの照合順序の場合はインストールできたので、日本語の照合順序を選んだときにだけ発生する問題のようです。

一応、MS にログを送ってみたので、回答を待ちたいと思います。。。

さて、これで 5/17 のための PPT に取り掛かれる。。。

posted @ 2008/05/08 11:37 by おがわみつぎ

InfoPathの「繰り返しテーブル」の表を整える(1)繰り返しテーブルの行間

繰り返しテーブルで表を作って整形するというケースは多いと思われる。このとき、マウスでドラッグして行間を変えることもある程度できるが、繰り返しテーブルとセルの中にあるテキストボックスなどのコントロールの「すき間」の調節ができないなど、マウス操作だけでは思ったとおりの表にすることができない。ここでは繰り返しテーブルの行間に限ってまとめる。

繰り返しテーブルの行間に関係する値には次のものがある。(1)繰り返しテーブルのセルの高さ、(2)繰り返しテーブルのセルに設定する、中のコントロールに対する余白である「セル内のスペース」、(3)コントロールの高さ、(4)コントロールの中のテキストに対する間隔をあける「スペース」、(5)コントロールに設定する、周囲の余白を設定する「余白」。

(1)繰り返しテーブルのセルの高さ
繰り返しテーブルを右クリックし「表のプロパティ」を開き「行」タブで設定する。デフォルトで「自動的に行の高さを設定する」になっており、セルの中に書かれた文字のフォントやコントロールの大きさによって高さが伸縮する設定である。文字のフォントやコントロールの大きさ如何にかかわらず行間をあけたいときは、行の高さの最小値に値を入力して決める。

(2)セル内のスペース
繰り返しテーブルを右クリックし「表のプロパティ」を開き「セル」タブで設定する。デフォルトでは上1ピクセル、下1ピクセルに設定されている。この値は、セルの罫線と中に書かれた文字やコントロールの間の余白の値である。

(3)コントロールの高さ
セル内のコントロールを右クリックし「プロパティ」を開き「サイズ」タブで「高さ」を設定する。デフォルトでは「自動」になっており、フォントサイズによって自動的に調節される設定である。高さを決めたいときはここに数値を入れる。

(4)スペース
上記と同じくコントロールの「プロパティ」の「サイズ」タブで設定する「スペース」は、コントロールの内側のテキストとの間に間隔をあける値である。

(5)余白
上記と同じくコントロールの「プロパティ」の「サイズ」タブで設定する「余白」は、コントロールの周囲の余白を設定する値である。

セルの高さやコントロールの高さ以外に行間を決める要素として、余白に関する値が3つある。このうち「スペース」は、コントロールの中に表示されるテキストの上下にできる間隔であるが、コントロールの一般的にはセルの中に一つのコントロールまたは一つの文字列が入るので、「セル内のスペース」と「余白」は同じ余白を設定する値のよう思えるが、これらは別の設定値である。

例えば一つのセル内にテキストボックスを縦に2つ並べて作ったとき、セルに対して「セル内のスペース」を上30pxにすると、上のテキストボックスとセルの上罫線の間だけに30pxの間隔ができる。テキストボックスの「余白」を上30pxにすると、両方のテキストボックスの上に30pxの間隔ができる。

行間の狭い表を作るためには、余白に関与するこれら3つの値を、すべて0に設定すればよい。

posted @ 2008/05/08 1:23 by ホチキス先生

生徒証発行機能を作った-感無量。5年がかりで課題を解決

私が現任校へ赴任したとき、生徒の学生証は磁気カードだった。専用の磁気カードライタを使って作るのだが、この磁気カードライタが接続されたコンピュータは、学校のデータベースと繋がっていなかったので、生徒の氏名や住所はシステムとは別に管理をしていた。この学生証には顔写真を入れていたが、この顔写真データを作成するためには、プリントアウトされた写真をスキャナで一枚ずつスキャンしてデジタルデータを作る、という作業をしていた。磁気データは学籍番号を記録した。

毎年280人の生徒が入学するので、年度初めには写真をスキャンするだけで何日もかかった。朝から晩までひたすらスキャンし、画像を切り抜く。まったく非人間的な業務だった。いま思い出すだけで背筋が寒くなる。この仕事を、一言も愚痴らず黙々としていたのは、私よりも1年前に赴任していた同僚のM先生だった。まったく頭が下がる思いであったと同時に、この業務からは一日も早く開放しなければならないと思った。

また生徒の住所が変わったとき、学校本体のデータベースに住所変更を変更しても、学生証のデータは切り替わらない。こちらのデータベースも手作業で変更しなければならなかった。ひとつのシステムとして繋がっていればしなくて良い同じ仕事を2回やらなければならない、ということは、それがいかに簡単な業務であっても精神的に辛い。また簡単な業務であるほど、一方を更新し他方は更新を忘れる、という事故も発生しやすい。

それ以上に学生証の運用上の問題もあった。磁気カードの単価が高いこと、作成に要する作業が膨大になることから、毎年発行することをせず、入学時に作ったものを卒業まで使い続けることにしていた。本校は学年制ではなく、生徒の在籍期間というものが決まっていないので、有効期限を書くことができなかった。そこで退学や卒業をしても、学生証が不当に使われるという危険があった。

まず当面の対策として行ったのは、学生証に有効期限を明示することだった。生徒の在籍期間は決まっていないが、とりあえず入学した時点から3年間を有効期間とし、3年に達するまでに卒業したときは回収する、3年を超えて在籍するときは、4年目に再発行する、ということにした。しかし途中退学した生徒の学生証を回収しきれない場合の問題は残る。また写真が入学したときのままであるということも問題であった。15歳から18歳までの生徒の容姿の変化は大きい。3年という期限は長すぎるのだ。やはり学生証は毎年発行するべきである。

なぜ本校の学生証が磁気カードだったかといえば、校内に磁気カードリーダーを備えたいわゆるキヨスク端末があり、学生証の磁気カードを使って出欠状況や修得単位をシステムから照会できるようになっていたからだ。しかし学生証=磁気カードである必要はない。そこで次の年には、端末を利用するカードは「生徒情報カード」という名称に変え、カードには学籍番号だけを書き、学生証は別に切り離すことにした。学生証は他の多くの学校がやっているように、紙のカードに住所や氏名を印刷し、写真を糊で貼って手作業で作ることにした。生徒証の管轄を生徒部にまかせ、実際の作業は担任が分担してやることにした。耐久性をもたせるためにラミネートの機械を購入し、作った学生証をラミネートすることにした。これで学生証は毎年新しく撮った写真で作り直すことができ、磁気カードは在学中ずっと使い続けるものにすることができた。

最後に残った問題は、住所管理である。学生証の管轄を生徒部にしたために、担任は生徒の住所変更があったとき、システム管理課と生徒部の両方に住所変更届を出さなければならなくなった。住所データが別々に管理されている問題は依然解決されていない。これを解決するためには、住所データはシステムで一括管理し、システムに生徒証発行機能を組み込まなければならない。これはシステム全体の再構築時に実現しようと計画した。

今年完成した新支援システムでは、生徒の住所変更があったとき、担任が住所データを更新することにした。このようなデータ更新は、担任が行うのが最も正確で早くできる方法だ。この一元化された生徒データをもとにSQL Serverに生徒証用のビューを作成し、SQL Serverに接続するアクセスプロジェクトを作成し、生徒部が管理していた生徒証のアクセスファイルから生徒証のレポートをコピーしてデータ接続をセットした。この作業は約30分。実に簡単に生徒証発行機能を組み込むことができた。このような機能を作る場合、最も時間がかかる作業は出力イメージのレイアウトを作成することだ。カード型の出力レポートを作るために、縦横全体の大きさ、文字の配置、フォントの大きさ、そして何よりもアクセスは罫線の調整に時間がかかる。また一枚の用紙に複数枚配置する設定も必要だ。表と裏の位置を合せることも苦労する。

思えば赴任してから学生証の問題をここまで整理するのに5年かかった。なぜもっとよく最初から考えておかなかったのか、と愚痴っても仕方ない。しかし実際に始ってしまった運用を、途中から変えるにはエネルギーが必要だった。問題があっても見えないふりをしたり、仕方ないで済ましてしまう同僚が多かった。問題点がわかっていても具体的な解決方法が見出せないこともある。業務にシステムが深くかかわっている場合には、業務改善の方向性を見出すのはITセクションの仕事でもあるのだ。そこで問題点と解決策を文章化し、きちんと会議で指摘して全体のものとしながら改善をすすめていった。運用を変えると仕事が増える部課があるので、露骨な抵抗にもあった。だからといって業務を丸抱えすると自滅する。少しずつ前に進みながら、ようやく解決した。

感無量だ。

posted @ 2008/05/03 12:45 by ホチキス先生

店頭で, アーク情報システム 「HD革命 DISK Mirror ver.2」 の説明をお聞きして...

HD革命 DISK Mirror ver.2
株式会社アーク情報システム

ヨドバシカメラ梅田店の地下で、説明員の方としばらく歓談してきました。
とても印象のいい方で、時折まじる大阪弁につい、長話。
結局、購入せずに帰ってきました。

さて、歓談した内容を簡単にまとめておきたいと思います。

商品概要:

 内蔵ハードディスクへの書き込みを、外付けUSBハードディスクへ
 ミラーリングするソフトウェア。
 内蔵ハードディスクの障害発生時には、専用のCD-ROM を使って、
 外付けUSBハードディスクからブートすることができる。

注意点:

 RAID 1 のミラーリングとは本質的に異なる。
 RAID 1 では、いずれかのハードディスクが損傷した場合も、
 運用し続けることができる。
 一方、DISK Mirror は、内蔵ハードディスクが故障した場合、
 運用を続けることはできない。
 書き込み内容を、外部HDDにも反映するだけと考えてほうがいい。

 また、Ver.2 は、システムドライブのミラーリングを手動で行う必要がある。
 リアルタイムにミラーリングできるのは、データドライブのみ。

 外付けHDDの接続方式サポートは、USB のみであり、eSATA 接続などは利用できない。

要望:

1.HDD故障時の動作の明確化

 内蔵ハードディスク、外付けハードディスクのいずれかが故障した場合、
 どちらが故障したのかを判断する基準がほしい。

2.S.M.A.R.T 情報の提供

 HDD故障を予知する情報を提供してほしい。

3.バックアップソフトとの連携

 HD革命シリーズのバックアップソフトを含めて、多くのバックアップソフトで
 バックアップする場合に、ミラーリングを停止する必要がある。
 少なくとも HD革命シリーズのバックアップソフトとは連携して動作してほしい。

4.システムドライブもリアルタイムミラーリングしてほしい。

5.ハードディスク暗号化ソリューションとの共存を明確にしてほしい。

 Vista の BitLocker や、秘文などのハードディスク暗号化ソリューションを
 利用できるのか確認してほしい。

6.セキュリティ対策ソフトとの共存を明確にしてほしい。

 セキュリティ対策ソフトは、かなり低レベルでの処置をするため、ぶつかりそうな。

7.「スリープ」「休止」時の動作も明確にしてほしい

8.eSATA 接続ハードディスクをサポートしてほしい。

 ノートPC であっても、ハードディスクは大幅に大容量化しているため、
 eSATA 接続が必要。

9.外付けHDD を内蔵HDDとして設置できるのか明確にしてほしい。

 故障発生時に、外付け HDD を取り外して、内蔵HDD とそのまま
 交換できるのであれば、復旧を短時間で終わらせることができる。

10.ミラーリングを停止させた状態で、外付けHDDの内容をみれるようにしてほしい。

 ミラーリングで使用する外付けHDDは、ドライブとして認識されないようになる。
 なにか大きなシステム変更をする場合、ミラーリングを一時停止してから、
 変更作業を行い、問題が発生した場合には、内蔵HDDと外付けHDDで
 ファイルを比較できればと。

11.SQL Server のデータベースが置けるのか、明確にしてほしい !

 たぶん大丈夫では、ちょっとね。
 VSS (Volume Shadow Copy) に対応しているんだろうか。

12. Vista 64bit に対応を.

以上です。

 

posted @ 2008/05/02 18:15 by 河端善博

Jeff Jones さんによる SQL Server 脆弱性状況の確認

英語: SQL Server - Fact Checking Recent Vulnerability History (Jeff Jones, 2008/3/5)
日本語: SQL Server (niwaka さんによる翻訳)

マイクロソフト Jeff Jones さんによる SQL Server のここ数年の脆弱性状況の報告です。
niwaka さん、翻訳ありがとうございます。

結果は、本文のとおり。
多くの痛い経験を積んだ SQL Server チームは、SDL を導入し、セキュアなデータベースを作る体制を築いたことを確認できます。

posted @ 2008/05/01 13:24 by 河端善博

マイクロソフト セキュリティ アドバイザリ (951306) : Windows の脆弱性により、特権の昇格が行われる

マイクロソフト セキュリティ アドバイザリ (951306)
Windows の脆弱性により、特権の昇格が行われる
(2008/4/18)

このセキュリティアドバイザリへの回避策について、ご注意いただければと思います。

IIS 6.0 を利用している場合、サービス「MSDTC」の停止が推薦されています。
Windows の管理ツール「サービス」では、次のようになっているサービスです。

サービス名: MSDTC
表示名: Distributed Transaction Coordinator
説明:
 データベース、メッセージ キュー、またはファイル システムなど、
 複数のリソース マネージャに分散されたトランザクションを
 調整します。
 このサービスが停止すると、これらのトランザクションは開始できません。
 このサービスが無効な場合は、このサービスに依存するサービスは開始できません。

説明にあるように、MSDTC は、非常に多くのサービスから利用されているサービスです。
このため、MSDTC の停止は、多くのアプリケーションを停止させる可能性があります。

「回避策の影響」をよくご確認の上、自社のシステムが MSDTC を利用しているかどうか、
ご確認されることをお勧めします。

【MSDTC 利用の確認方法】

 MSDTC を「停止」させます。
 自社のアプリケーションをひととおり、操作します。
 MSDTC が「開始」されているかどうかを確認します。

 MSDTC が開始されている場合、アプリケーションから利用されていることになります。

posted @ 2008/05/01 9:53 by 河端善博

注意: SQL インジェクション攻撃

SQL インジェクション攻撃とその対策
(マイクロソフト, 2008/4/30)

SQL インジェクション攻撃による Web 改ざんが多発しているようです。
主に、IIS, ASP, ASP.NET, SQL Server で構築された Web システムがターゲットとなっています。

Web 改ざんが発生した場合、Web サイトを閲覧した方のコンピュータがウィルスに感染する可能性があります。
マイクロソフトをはじめ、セキュリティ関連団体が注意喚起を行っていますが、改ざんは増え続けているようです。

開発者、技術者の方々は、早急に関連情報を確認されることをお勧めします。


【最初に注意】

 改ざんされた Web を、参照するなら、感染してもいいマシンで行うこと。

 SQL インジェクションに関連する情報を読むと、感染しているサイトを特定のキーワードで検索できることがわかります。
 しかし、感染している可能性がある Web サイトを見にいくことはお勧めしません。
 見に行くのであれば、感染してもいいコンピュータを用意した上で、見に行ってください。

 攻撃側は、あなたの防御対策の上を行っているかもしれないためです。


ここでは、それぞれの立場の方々に向けて、注意を整理させていただきます。

【経営者の方々】

 自社の Web サイトにて改ざんが発生した場合、自社の顧客の PC がウィルスに感染することになります。
 もちろん、お客様がそれぞれ十分なセキュリティ対策をしていれば感染しない場合もありますが、すこしでも対策が漏れたお客様が被害にあわれる可能性があります。

 さらに、改ざんされた場合、自社の Web サイトが、Live Search, Google, Yahoo などの検索から除外される可能性があります。
 検索サービスを提供する各社は、利用者保護のため、改ざんされている Web サイトを検索から除外しているようです。このため、御社のサイトが検索されなくなる可能性があります。

 次に、自社Web サイトへの攻撃の有無の確認、自社の Web アプリケーションの対策状況の確認をされるとともに、ご利用のファイアウォール製品などで本当に防ぐことができるのか、確認されることをお勧めします。

【運用管理者の方々】

 まず、攻撃の状況を確認されることをお勧めします。
 たとえば、IPA から iLogScanner により Web アクセスログから攻撃の状況を確認することができます。
 ただし、iLogScanner で検出されなかったとしても、攻撃がなかったことにはなりません。
 次に、現在の Web アプリケーションの対策状況、データベース内の改ざんの状況の確認をお勧めします。
 あわせて、ご利用のファイアウォール製品などで本当に検出、防御できるのかメーカーに確認されることをお勧めします。
 なお、ASP と VBScript で開発した Web サイトは、エラー処理があまい場合が多く、危険性が高くなります。

【Web アプリケーションを運用される方々】

 市販の Web アプリケーションを利用されている方々、オープンソースやフリーのものも含みます。
 こうした Web アプリケーションを自社サーバや、ホスティング上で利用されている方は、開発元、販売元に確認し、適切なバージョンを利用しているかを確認します。

 次に、攻撃の状況を確認されることをお勧めします。

【開発者の方々】

 まず、攻撃の状況を運用管理者に確認されることをお勧めします。
 すでに提供済みの Web サイトについても、保守範囲であれば確認されることをお勧めします。
 次に Web アプリケーションの対策状況の確認をお勧めします。

 次に、利用しているフレームワーク、コントロールなどのライブラリが適切に対応されているか提供元に確認されることをお勧めします。適切な保守が行われていないものは、脆弱性が存在する可能性があります。

【ホスティング利用者の方々】

 まず、攻撃の状況を確認されることをお勧めします。
 たとえば、IPA から iLogScanner により Web アクセスログから攻撃の状況を確認することができます。
 ただし、iLogScanner で検出されなかったとしても、攻撃がなかったことにはなりません。
 攻撃の可能性があった場合は、Web サイトを構築した方と相談されることをお勧めします。
 次に、データベースが改ざんされていないかを確認します。

【開発者で、セキュリティについて自身がない方】

 Web サイトを公開する前に、マイクロソフト, IPA などで提供される対策情報の確認をお勧めします。
 下記のオンライントレーニングもお勧めします。

 「開発者向け セキュリティ オンライン セミナー」
 https://www.microsoft.com/japan/msdn/security/seminars/default.aspx

【一般の方】

 まず、今回の攻撃では、問題のある Web サイトを表示しただけで、感染する場合があります。
 さらに、感染したことに、特に気付かない場合があります。
 ふつうに Web を見れる場合もあります。
 このため、通常の PC 利用で、なにかいつもと違うと感じられる場合は、ウィルス対策ソフトで、PC を完全にスキャンするなどの確認や、運用管理者に確認を行うことをお勧めします。

 次に、Windows Update を確実に行い、セキュリティ対策製品の更新を確実に行ってください。
 Firefox, Safari などのブウラザ、Acrobat, Flash, Java ランタイム, Google ツールバー, Yahoo ツールバー, QuickTime などブラウザのアドイン製品もすべて、確実に最新版にしてください。
 最新版にできない場合、感染する可能性があると考えてください。
 攻撃側は、複数のウィルスをまとめて送りこんでくるためです。

 次に、いつも利用している Web サイトや、絶対に安全そうな企業や政府の Web サイトであっても、改ざんされている可能性があることを認識してください。
 もし、Web サイトのおかしな動きを確認した場合は、運用管理者や、Web サイトのサポートに問い合わせることをお勧めします。

以上です。


また、今回の SQL インジェクション関連の情報を確認される方への注意点もまとめておきます。

【SQL インジェクション注意点】

1. Windows, IIS, ASP, ASP.NET, SQL Server そのものの脆弱性が問題ではない

 SQL インジェクションの Web サーバへの攻撃は、SQL Server に脆弱性があるためではありません。
 ASP などで構築した Web アプリケーションそのものに問題があります。

2. Windows, IIS, ASP, ASP.NET, SQL Server のシステムだけが問題ではない

 攻撃は、Linux, Apache, PHP, MySQL などを利用したシステムでも、行われる可能性があります。

3. クエリー引数だけが対象ではない

 攻撃は、http://localhost/test.asp?value=xxxxxx の value= の部分のようにクエリー引数を改ざんして行う場合が、はっきりと Web アクセスログに残りますが、これだけではありません。
 POST の値、Referer や User-Agent などHTTP ヘッダーの値、Cookies の値など、すべてが対象となります。

4.ファイルは改ざんされていない

 Web サーバ上のファイルは改ざんされない場合があります。
 攻撃によって、データベース上のテーブルのレコードの一部に文字列が埋め込まれる場合があります。
 この場合、ファイルは一切変更されません。
 このため、既存のファイル改ざんを検知するソフトウェアでは、検知できません。

5.攻撃の状況は変化している

 攻撃は、数年前から行われてきましたが、2007年末から一気に多くなり、どんどん攻撃対象が拡大しているようです。

6.改ざんされていなくても、漏えいしている可能性がある

 改ざんが成功していない場合も、データベースの情報の漏えいが発生している可能性があります。

7.改ざんされたサイトの総数はわからない

 検索サイトでは、改ざんされた Web サイトを検索から除外しているようです。
 このため、実際に改ざんされた Web サイト数は、専門の調査会社でないとわからないようです。

以上です。

ご注意いただければと思います。

posted @ 2008/04/30 18:13 by 河端善博

週の初めが月曜日で、2004年の第32週の週初めの日を取得したいとき

--システムの週初めの曜日の設定をバックアップ
declare @datefirst int
set @datefirst = @@datefirst

--週初めの日を月曜日に設定
set datefirst 1

--31週間後の3日前を取得
select dateadd(dd,
/*2004/1/1が木曜日(4)なので、その週の月曜日は3日前*/-(datepart(dw, '2004/1/1')-1),
/* 1/1が第1週なので、第32週は31週間後 */dateadd(ww, 32-1, '2004/1/1'))

--システムの週初めの曜日を元に戻す
set datefirst @datefirst

posted @ 2008/04/28 19:05 by 伊藤由起子

LINQPad(LINQとSQL用IDE)

 米田です。
 
 LINQPadを試しました。
LINQとSQL用IDEです。VisualStudio は常時起動しておくにはいささか重いのですが、
LINQに慣れていくためのツールとしては理想的だと思います。
http://www.linqpad.net/
Download LINQPad
>LINQPad supports everything in C# 3.0 and Framework 3.5:
>LINQ to SQL
>LINQ to Objects
>LINQ to XML
>LINQPad is also a great way to learn LINQ: it comes preloaded with 200 examples from my book, C# 3.0 in a Nutshell.
>There's no better way to experience the coolness of LINQ and functional programming.
>And LINQPad is more than just a LINQ query tool: it's a code snippet IDE. Instantly execute any C# 3 or VB 9 expression or statement block!
>Best of all, LINQPad is free and needs no installation: just download and run.? The executable is only 2MB and is self-updating.
 あとLINQ to Objectsのかなりの機能を2.0上で実行できる dll も提供されています。
http://www.albahari.com/nutshell/extras.html
C# 3.0 in a Nutshell - Extras
LINQBridge: LINQ with Framework 2.0
 
http://www.albahari.com/nutshell/code.html
C# 3.0 in a Nutshell - Code Listings
http://www.infoq.com/jp/news/2008/04/linq-tooling
InfoQ: LINQツール
 

posted @ 2008/04/27 8:33 by 米田

新旧データの移行に際しての教科書データの問題があった

教科書購入票の出力にあたって、問題があった。ある教科書が昨年度の採用教科書と同じであるのに、異なる教科書として登録してあり、昨年度に購入した教科書を重複して買うことになっていたのだ。このことは、ある生徒の申し出から明らかになった。

以前書いたように、本校は完全に単位制で生徒によって使用教科書が全く違う。また受講登録しても欠席時間オーバーで未履修となり、次年度に再び同じ講座を受講する生徒が少なからずいる。そのために、年度初めの教科書販売では、個々の生徒の受講登録データに加えて、昨年度までに購入済みの教科書データを重ね合わせて購入票を作る必要がある。そのデータに一部間違いがあったのだ。

在校生が昨年度までに購入した教科書データは、旧のシステムに入っている。そのデータを取り出して新システムに移したのだが、このとき、旧システムで管理していたコードを変換したのだ。

高等学校の教科書というものは、文部科学省の検定を受けたものであり、教科書会社のコードと教科書のコードの2つで管理している。しかし旧システムでは、採用した教科書を一連の通し番号で管理していた。本校の発足当時は、その管理方法が合理的だと判断されたのだ。ところが数年前から、文部科学省の行う教科書需要数の調査が電子化され、データで提出するように求められるようになり、同時にすべての教科書を一意のコードに決めるということが行われた。文部科学省が決めたコードであるから、これを使わない手はない。そこで新システムでは教科書の管理を、文部科学省の決めるコードで行うこととした。

そのために、旧システムのコードを新システムに移行するとき、文部科学省のコードに置き換える必要が生じたのだ。これが手作業になった。

教科書の名称は単純である。ほとんどの教科書は教科の名前を冠するのだから、そのバリエーションは少ない。余談になるが、英語だけは違う。「All Aboard! English」とか「SUNSHINE English Course」といったように個性的な教科書名が使われる。しかし一般的な教科書名は、その科目名をつけられるので、例えば化学の教科書ならば「化学ⅠB」といった味もそっけもない教科書名となる。しかし教科書も何年かごとに内容を改訂されるので、そのときは「改訂化学ⅠB」とか「新編化学ⅠB」、さらには「新訂化学ⅠB」などと、内容が新しくなったことを何らかの形で教科書名に反映させる工夫がなされている。

ところが、だ。今回、教科書コードの整理を間違った教科書は、教科書名が全く同じであるのにもかかわらず、内容が改訂されていたのだ。それをデータ移行の際に気づかなかった。もちろん、教科書コードを比べると違っているということがわかったはずだが、当然書籍名も変わっているはずだ、という思い込みが災いした。

書籍名称は同じだが、平成19年度から改訂になっていた、ということを見逃したのだ。正直なところ、教科書会社を恨みもした。なぜ全く同じ書籍名なのだ、と。そのために、昨年と同じ教科書を必要とする生徒に、買わなくてよいというデータを与えることができなかった。返本しなければならない。いったい何名の生徒が返本の対象になるのか、を調べた。データベースの教科書購入データをバックアップした後、書籍コードの訂正を行って、さらに教科書購入データを出力し、その差を点検した。すると17名の生徒が対象であることがわかった。人数的にはそれほど多くなかったので、やや、ほっとした。

しかし、その後、こんどは別の教科書で、改訂されているので昨年度の教科書は使えず、同じ講座を受講しても新たに教科書を購入しなおさなければならないケースがあることが判明した。これも教科書名が全く同じケースだった。こちらは返本ではなく追加購入になるので、問題の影響は小さかったといえるが、余計な手間を必要としたことには変わりない。

つくづくデータの移行は難しいと実感した。そして長期間使える「持久力のある」コード体系、データ移行にも耐えうる「意味のある」コード体系を考えることの大切さも身にしみた。

posted @ 2008/04/26 22:06 by ホチキス先生

階層構造の途中を指定して、その関連リーフのみ取得

ベタなやり方だけど、そこそこ早いし、凝っている時間もないので・・・(^^;

  1. リーフから見て、ルートまでのパスを取得するための再帰関数を作る
    CREATE FUNCTION dbo.GetProductParents
    (
     @CatID  int,
     @Path  varchar(max)
    )
    RETURNS varchar(max)
    AS
     BEGIN
     
      DECLARE @ParentID int
      DECLARE @Ret  varchar(max)
      
      SELECT @ParentID = ParentID
      FROM m_ProdCategory
      WHERE ID = @CatID
      
      SET @Ret = @Path + '/' + LTRIM(STR(@CatID)) + '/'
      
      IF @ParentID > 0
       SET @Ret = dbo.GetProductParents(@ParentID, @Ret)
     
     RETURN @Ret
     END


  2. リーフとパスを連結するビューを作る
    CREATE VIEW [dbo].[V_Product_Parents]
    AS
    SELECT            ProductID, 
                              dbo.GetProductParents(ProdCatID, '') AS Parents
    FROM              dbo.m_ProdCatDetail


  3. 取得時のSQL文
    SELECT            m.CD, 
                              m.JName
    FROM              V_Product_Parents v
                             inner join m_Product m
                             on v.ProductID = m.ID
    WHERE            v.Parents like '%/251/%'

posted @ 2008/04/25 13:08 by 伊藤由起子

Windows XP SP3 日本語版も含めTechNet Plus会員向けに公開

 米田です。
 
 Windows XP SP3 日本語版も含めTechNet Plus会員向けに公開されたようです。
http://technet.microsoft.com/ja-jp/subscriptions/cc526022(en-us).aspx
New Subscriber Downloads
>22-Apr-08 Windows XP Service Pack 3 PATCH - see Top Subscriber Downloads list for your local language and English (English, Arabic, Traditional Chinese-Hong Kong, Traditional Chinese, Simplified Chinese, Czech, Danish, Norwegian, Finnish, French, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Polish, Brazilian Portuguese, Portuguese, Russian, Spanish, Swedish)
 

posted @ 2008/04/24 23:31 by 米田

TechNet Plus会員向け新着ダウンロード情報ページが一般公開(例 Desktop Optimization Pack 2007 英語版は4/8登録)

 米田です。
 
 TechNet Plus会員向け新着ダウンロード情報ページが一般公開されました。
(RSSも準備中のようです)
例 Desktop Optimization Pack 2007?英語版は4/8登録とのことです。
http://technet.microsoft.com/ja-jp/subscriptions/cc526022(en-us).aspx
New Subscriber Downloads
>8-Apr-08 Desktop Optimization Pack 2007? (English)
http://blogs.technet.com/technetplussubscriptions/archive/2008/04/16/technet-plus-new-content-in-subscriber-downloads.aspx
TechNet Plus Blog : TechNet Plus: New Content in Subscriber Downloads
 

posted @ 2008/04/22 22:24 by 米田

Windows XP SP3 RTM(RTWは4/29予定)

 米田です。
 
 Windows XP SP3 RTMです。
Windows Update や Download Centerへの公開(RTW)は4/29予定とのことです。
http://blogs.technet.com/curiousgeorge/archive/2008/04/22/windows-xp-sp3-release-to-manufacturing.aspx
Curious George on TechNet and more... : Windows XP SP3 Release to Manufacturing
>We are also in the final stages of preparing for release to the web (i.e. you!) on April 29th, via Windows Update and the Microsoft Download Center. Online documentation for Windows XP SP3, such as Microsoft Knowledge Base articles and the Microsoft TechNet Windows XP TechCenter, will be updated then.
 

posted @ 2008/04/22 22:05 by 米田

マイクロソフト ランゲージ ポータル: 製品用語を検索できるサイト

マイクロソフトの製品で使われている用語を検索できるサイトが公開されました。

マイクロソフト ランゲージ ポータル

おもに次の機能があります。

特に、「製品用語検索」は、英語での用語を日本語にどう置き換えればいいかを確認することができます。
英語の掲示板を活用する時や、英語の製品の日本語リソースを作成する時、などに活用できます。

今後、日本語から英語を検索する機能も提供が予定されている ? かも。

2008 MVP Global Summit では、この部門の担当の方とお話する機会もあり、いくつか要望を上げさせていただきました。

posted @ 2008/04/22 15:47 by 河端善博

2008 MVP Global Summit から帰ってきて...

先週、シアトルで開催された MVP Global Summit に参加しました。
毎年、世界中から、マイクロソフト MVP があつまり、製品、技術、コミュニティ活動について、熱い議論を重ねます。

今年も、世界にいる 4,000 名のうち、1,700 名が集まりました。
日本からは、80名弱が参加。
セッション数は、500 を超え、朝 9:00 から、夕方の懇親会、さらにはホテルに戻って明け方近くまで。

元気をもらう

毎回参加しておもうのは、「とっても元気をもらえる」こと。
ヨーロッパ、カナダなど、世界の技術者との会話。
マイクロソフトの製品担当者、開発者、セールス、マーケの方々との会話。
そして、日本からこられている MVP の方々との会話。
いずれも面白く、ふと気付くと 3:00am を回っていたり。

この体験をぜひ、PASSJ のみなさんと共有していければと思います。

※セッションの内容は、機密保持契約 (NDA) で縛られてますので、
 個別に担当者に連絡をとり、コミュニティにフィードバックする許可を得て、公開させていただきます。

参考: Microsoft MVP (Most Valuable Professional)

posted @ 2008/04/22 15:18 by 河端善博

Sara さんの"Visual Studio ワンポイント"

マイクロソフトの Sara さんが、毎日 Visual Studio のワンポイントをブログにまとめています。

著者の Sara さんとは、先週シアトルで行われた 2008 MVP Global Summit でお会いしました。
とっても笑顔のすてきな Sara さんが、2007年7月から毎日ひとつ、TIPS を紹介されています。
開発裏話もたのしいですね。

英語版は、今日の時点で 198。
日本語版は、今年の4月から翻訳が始まっています。

Windows Vista 用のサイドバーガジェットもありますので、よろしければどうぞ。

※日本語版も、もうすぐ提供がはじまるのではないかと思います。

そそ、Sara さんは、空手をライフワークにされているそうです。 (Tags: Karate)

posted @ 2008/04/22 14:50 by 河端善博

「新支援システム」が実稼動する

●「新支援システム」が実稼動する

昨年から構想をあたため、少しずつ構築してきた、学校の学籍・成績管理を行う「新支援システム」だが、この4月から完全に実稼動した。学校のすべての情報が、この「新支援システム」に一元化されている。本来の機能である、生徒の学籍・成績はもちろん、生徒や職員の住所管理、在籍証明書や卒業証明書などの出力も、このシステムが一手に引き受ける。

昨年の12月には、新支援システムに登録された平成20年度の講座情報に基づき、在校生が受講登録を行った。そして4月には新入生の基本情報を登録し、新入生が受講登録を行った。年度末から年度初めにかけての作業はつぎのとおりであった。

・在校生の受講登録
・新入生基本情報の登録
・在校生の受講登録(変更・追加・削除)
・在校生の在籍状況の整理
・同時展開講座の分割

作成したSQL ServerのテーブルやInfoPathのフォームは次のとおり

・新年度の在校生を管理するテーブル
・新年度のクラス・出席番号を編集するフォーム
・同時展開講座を管理するテーブル
・同時展開講座を分割し、教室と授業担当を設定するフォーム
・同時展開講座へ生徒を分けるフォーム

作成した帳票は次のとおり

・教科書販売表
・授業教室と授業担当者の入った時間割表
・クラス名表
・教員別授業担当表
・担当授業の生徒一覧表

ここまでの作業で新年度の授業を実施できるようになった。慎重に作ってきたつもりだが、まず教科書販売がうまくいくか、が心配だった。他の多くの高校では、学年ごとに受講講座がほぼ決まっているので、教科書販売では基本的に各学年で共通の教科書を購入するだけだ。生徒によって異なるのは、音楽・美術・書道などの芸術選択、理系・文系などコースによる違い、一部の選択科目くらいである。また昨年度と同じ科目を再履修するということもない。

しかし本校は完全な単位制であり、講座の選択は生徒によって全く違う。また昨年度に受講登録したが、出席時間数が足りずに未履修となり、同じ講座をもう一度再履修するというケースもかなりある。その場合は、教科書が昨年度と同じであれば、購入する必要はない。

これらの状況があるので、教科書購入表の作成には、各生徒が昨年度までに履修した講座のデータと、それぞれの講座の年度ごとの教科書データが必要になる。それと今年度の教科書データとを重ね合わせて、購入すべき教科書と、既に購入済みであり新たに購入する必要のない教科書を分けて、教科書購入表を作る必要がある。

教科書購入の日には、購入表の不備で生徒がどっと職員室に押し寄せるのではないか、という不安をぬぐい切れなかったが、そのような混乱もなく、教科書購入は順調に実施できた。ただ、全く問題がなかったか、といえば、残念ながら若干の問題があった。原因はシステムの問題ではなく、教科書データの登録の問題であったのだが。これについては、あらためてコードの統一性というものの重要性を考えさせられた。できるだけ長く利用でき、かつ移行の際にも合理的に操作できるコード体系というものを考えておかなければならない。

もうひとつは実際に授業が開始されたとき、時間割どおりに授業が実施され、配布された時間割表どおりに生徒が授業を受けることができるか、という不安だった。まさにこの日は、時間割に大きな不備があれば、学校全体が再混乱に陥る、と言っても過言ではなかった。朝から校内を回って様子を見ていたが、数人の新入生が教室の場所がわからずに迷っていたくらいで、きわめて順調に授業が開始された。

いままでのところは次第点をもらっていいだろう。システムは正しく動いてあたりまえ、であったとしても。

posted @ 2008/04/19 11:46 by ホチキス先生

制約の無効化とデータの削除。

緒事情により、DBのファイルサイズが実データに比してとても大きくなってしまい、メンテナンスのためにデータ移行(Export/Import)をさせないといけなくなりました。

SSISのパッケージでもExport/Importは出来ますが、そのままではかゆいところに手が届かないので、その他のスクリプトを併用しつつ準備を進めています。

さて、データの登録/削除のテストをしている時に、テーブルに制約があるとデータの削除が(もちろん)うまく行えません。

制約の削除ではなく、無効化ってどうするんだっけ...と調べてみると、NOCHECKオプションで指定すれば良いということが分りました。

でも、根が横着者なので、全部のテーブルの制約を無効化するにはどうしたらいいかな....と考え、ストアドを作ってみました。(ストアドについては、Articleの方に載せてみました:  [ DB内のオブジェクト(テーブル)の全部の制約を無効/有効にする ] )

一応期待通り、まとめて外部キーの制約を無効化/有効化できるようにはなったのですが、制約が無効であっても、TRUNCATEはできないんですね....。

#Oracleは出来たと思ったのですが、違ったかな?

DELETEは出来てもTRUNCATEさせたい場合は制約を削除しないといけないので、やっぱり、ちゃんとCreate TableとかDROP Constraint/ADD ConstraintのSQLを用意しておかないとダメなのかなあ、と思いました....。

posted @ 2008/04/18 12:55 by あきこ

SQL Server 2005 SP3 は、SQL Server 2008RTM後、年内予定

 米田です。
 
 SQL Server 2005 SP3 は、SQL Server 2008RTM後、2008年内公開予定のようです。
http://blogs.technet.com/dataplatforminsider/archive/2008/04/15/sql-server-2005-sp3-coming-soon.aspx
The Data Platform Insider : SQL Server 2005 SP3 - coming soon
>we will in fact deliver an SP3 following the release to manufacturing of SQL Server 2008. Our goal is to get SP3 released in the market in CY2008.
 

posted @ 2008/04/16 23:33 by 米田

SQL Server 2005 SP2 CU7()が公開

 米田です。
 
 SQL Server 2005 SP2 CU7(累積的な更新パッケージ 7)が公開されました。
http://support.microsoft.com/kb/949095/ja
SQL Server 2005 Service Pack 2 の累積的な更新パッケージ 7
?オンライン累積的な更新パッケージを取得する要求を送信するために、次のマイクロソフト Web サイトを参照してください。
http://go.microsoft.com/?linkid=6294451
 

posted @ 2008/04/16 7:07 by 米田

Zune80 大人気?

Pike Place Market そばにある Radio Shack で Zune の入荷状況を聞いてみた。5GBや8GB対応版はあるが80GBは、ここ数カ月、入手困難になっているとのこと。

手に入れるなら、 Vodcast のコンテンツを多くしまえる 80GB だなぁ。今回入手できるかしら…一縷の希望をカンパニーストア来訪に託している状態です。入手できればめっけもん程度ですが。

posted @ 2008/04/14 16:23 by YamaKen

Seattle に来ています。

シアトルに来ています。現在、4/14 の 0:15AM です。渡航の主目的は明日から行われる Global Summit 参加。今回で通算6回目。自分の成長の糧を得るために。Consumer Security を中心ですが、興味範囲もつまみ食いしつつ。

さっきまで松本家とともに、 NBA の SuperSonics(Seattle) vs Mavericks(Dallas) を観ていました。日本に居る限り、そう何度も見られるものではないので、とても貴重な、充実した時間でした。これを含めて観光系の用事も済ませて、だいぶ満足。明日スタートの本編でダウンしないようにしなきゃ。昨年までよりは多分、イケるとおもうけど。今回は積極的に質問を浴びせられるように頑張りたいですね。

posted @ 2008/04/14 16:19 by YamaKen

TechNet Magazine 2008 年 4 月号はSQL Server 2008特集

 米田です。
 
 TechNet Magazine 2008 年 4 月号はSQL Server 2008特集です。
 特に次の2記事が参考になりました。
SQL Server 2008: セキュリティ
 FILESTREAM ストレージの扱い。独立ファイルに分離しつつ、トランザクションに参加させ、セキュリティもSQL Server 経由アクセスに集中させられそう、といった部分の仕組みについてイメージがつかめます。
SQL Server 2008: SQL Server のブロッキングを最小限に抑える
 SQL Server 2005とあわせて解説されています。
http://www.microsoft.com/japan/technet/technetmag/default.mspx
TechNet Magazine 2008 年 4 月号
SQL Server 2008: 新機能
SQL Server 2008: セキュリティ
SQL Server 2008: 新しいデータ型
SQL Server 2008: データ ウェアハウスのクエリ パフォーマンス
SQL Server 2008: SQL Server のブロッキングを最小限に抑える
 

posted @ 2008/04/10 6:26 by 米田

マイクロソフト ランゲージ ポータル 公開

 米田です。
 
 マイクロソフト ランゲージ ポータル が公開されました。
マイクロソフト製品について用語集等提供されています。
また、違和感がある場合のフィードバックも可能なようです。
http://www.microsoft.com/language/ja/jp/default.mspx
マイクロソフト ランゲージ ポータル ホーム
・製品用語検索
・用語へのフィードバック
・スタイル ガイドのダウンロード
 例えば、rebuild を検索すると、次のようにSQL Serverでの結果を得ることができます。
(suspectなど面白いですね)
製品別用語? ページ:1
ソース用語 対応する用語 製品
Rebuild Rebuild SQL Server
Rebuild 再構築 SQL Server
Rebuild All すべてリビルド SQL Server
Rebuild index インデックスの再構築 SQL Server
Rebuild index インデックスを再構築する SQL Server
Rebuild Catalog カタログの再構築 SQL Server
Rebuild Catalog カタログを再構築する SQL Server
Rebuild Indexes インデックスの再構築 SQL Server
Rebuild interval: 再構築間隔: SQL Server
Rebuild Index Task インデックスの再構築タスク SQL Server
Rebuild index on {0} {0} のインデックスの再構築 SQL Server
Force rebuild interval 強制的な再構築間隔 SQL Server
Force rebuild interval : 強制的な再構築間隔: SQL Server
Rebuild full-text catalog フルテキスト カタログの再構築 SQL Server
Define Rebuild Index Task インデックスの再構築タスクの定義 SQL Server
Define Rebuild Index Page インデックスの再構築ページの定義 SQL Server
Force rebuild interval value 強制的な再構築間隔の値 SQL Server
Rebuild All Full-Text Catalogs すべてのフルテキスト カタログの再構築 SQL Server
Force rebuild interval time measure 強制的な再構築間隔の時間単位 SQL Server
Failed to rebuild full-text catalog. フルテキスト カタログを再構築できませんでした。 SQL Server
 

posted @ 2008/04/09 23:00 by 米田

Pash(PowerShellのオープンソース実装、他OS対応)開発が始まっている

 米田です。
 
 PashというPowerShellのオープンソース実装がSourceForge上で始まっているようです。
他OS対応が特徴になります。
http://pash.sourceforge.net/
igor.moochnick - Pash
>Pash = Posh (PowerShell) + bash(one of the Unix shells)
http://igorshare.wordpress.com/2008/04/06/pash-cross-platform-powershell-is-out-in-the-wild-announcement/
Pash - cross platform PowerShell is out in the wild! Announcement. ≪ IgorShare Weblog
 
http://blogs.msdn.com/powershell/archive/2008/04/08/powershell-on-linux-solaris-mac-etc.aspx
Windows PowerShell : PowerShell on Linux, Solaris, Mac, PHONES!!! etc
 

posted @ 2008/04/09 6:26 by 米田

SQL Server 2008 ではPolicy Management が Best Practices Analyzerを置き換える(Upgrade Advisorは2000から対象)

 米田です。
 
 SQL Server 2008 ではPolicy Management が Best Practices Analyzerを置き換えるようです。
(前にDeclarative Management Framework -DMFと呼ばれていたもの)
 SQL Server 2008 CTP6(2月版)の
>Program Files\Microsoft SQL Server\100\Tools\Policies
に含まれます。xmlファイル経由で Policy を別サーバーに写すことも可能なようです。
http://blogs.technet.com/andrew/archive/2008/03/30/sql-server-2008-best-practice.aspx
Andrew Fryer's Blog : SQL Server 2008 Best Practice
>Instead there will be a set of policies that you can import and use in Policy Management (btw this feature was previously known as the Declarative Management Framework -DMF).
>・A Facet. This is what you are trying to manage e.g. the CLR.
>・A Condition, which you want the facet to be in e.g. you want the CLR to be on because you have written some cool string functions using the CLR that you need to implement.??
>・An execution mode.? This is how you want to test for the condition and the four options are:
>On Demand. This mode evaluates the policy when directly specified by the user.
>On Change - Prevent. This automated mode uses DDL triggers to prevent policy violations.
>On Change - Log Only. This automated mode uses event notification to evaluate a policy when a relevant change occurs and logs policy violations.
>On Schedule. This automated mode uses a SQL Server Agent job to periodically evaluate a policy. The mode logs policy violations.
 
 Upgrade AdvisorはSQL Server 2000から対象であり、最初から付属します。
http://blogs.technet.com/andrew/archive/2008/03/26/sql-server-upgrade-advisor.aspx
Andrew Fryer's Blog : SQL Server Upgrade Advisor
>So? for those of you considering upgrading SQL Server in any combination of? 2000, 2005 and 2008, your first port of call should be Upgrade Advisor.
 

posted @ 2008/04/06 15:47 by 米田

SQL Server 2008 自習書を CTP 2月版対応へアップデートしました

私たちの執筆した SQL Server 2008 自習書シリーズの以下の 4本

・No.1 SQL Server 2008 の注目の新機能を試してみよう!
・No.2 SQL Server 2008 Reporting Services 入門
・No.3 SQL Server 2008 Analysis Services 入門
・No.4 SQL Server 2008 Integration Services 入門

を、CTP 2月版へ対応させてアップデートしました。
ダウンロードはこちらから
http://www.microsoft.com/japan/sql/2008/self-learning/default.mspx

No.1 の新機能編では、

・ データ圧縮(Data Compression)
・ データ操作監査(All Action Audit)
・ パーティション ウィザード

などの使い方を追加し、
No.2 Reporting Services 編では、「ゲージ」 の使い方を追加しましたので、
ぜひご覧いただければと思います。

p.s
現在、No.5 以降を鋭意執筆中です。。。

posted @ 2008/04/03 18:43 by 松本崇博

Access対応版追加(SQL Server Migration Assistant (SSMA) V4.0 CTP1)

 米田です。
 
 SQL Server Migration Assistant (SSMA) V4.0 CTP1のAccess対応版が追加されていました。
>SSMA for Access supports Access 97 - Access 2007 databases.
>Requirements for the SSMA for Access:
>The Ace OleDB provider version 12.0. You can install provider from the Microsoft Office 2007 product or download it from Microsoft web site.
 対応するバージョンが広いこと、Jet ではなく Ace OleDB provider経由で接続するらしいこと、もちろんSQL Server 2008対応版も公開されることが特徴でしょうか。
http://www.microsoft.com/downloads/details.aspx?FamilyID=4536d117-d4a4-4fc0-8c6a-3b73fb7992b5&DisplayLang=en
Download details: SSMA 2008 for Access V4.0 CTP1
>File Name: SSMA 2008 for Access CTP1.4.0.1222.zip
>Version: 4.0
>Date Published: 3/27/2008
>Language: English
>Download Size: 3.3 MB
>Microsoft SQL Server Migration Assistant (SSMA) for Access is a tool for migrating databases from Microsoft Access to Microsoft SQL Server 2008. SSMA for Access converts Access database objects to SQL Server database objects, loads those objects into SQL Server, and then migrates data from Access to SQL Server.
  
http://www.microsoft.com/downloads/details.aspx?FamilyID=9ac54828-b079-4f92-a0fa-8693f6a811e4&DisplayLang=en
Download details: SSMA 2005 for Access V4.0 CTP1
>Quick Details
>File Name: SSMA 2005 for Access CTP1.4.0.1227.zip
>Version: 4.0
>Date Published: 3/27/2008
>Language: English
>Download Size: 3.3 MB
>Overview
>Microsoft SQL Server Migration Assistant (SSMA) for Access is a tool for migrating databases from Microsoft Access to Microsoft SQL Server 2005. SSMA for Access converts Access database objects to SQL Server database objects, loads those objects into SQL Server, and then migrates data from Access to SQL Server.
 

posted @ 2008/04/02 23:14 by 米田

プチ記事: Webリソース読み込みというトランザクション処理:「待ってダメならあきらめよう」

Silverlight + JavaScriptなネタですが、ちょっとしたトランザクション処理と見立てると面白いと思うので、あえてPASSJブログへ、Webリソース読み込みというトランザクション処理、というものを書いてみます。別途MSDNブログにも書きたいと思っています。

このところSilverlightに関わることが増えて、実際に動かすためのコードを書いていることが多いです。その先には技術啓蒙があるものの、「百聞は一見にしかず」で動いているものをお見せして、その裏側のからくりをきちんと説明できる状況に自分自身を置くことを心がけてます。いわゆる借りてきたサンプルを動作させるのではなく、要件に合致したものを組み上げていくということが中心になっているので、実際のコードを書いていることが多くなるわけです。

今のところはSilverlight 1.0による技術的なチャレンジに向き合っていますが、頭で考えたことが現実の形になると本当に面白いものだということを、今更ながら実感しています。私が駆け出しのプログラマーだった頃の日々の喜びみたいなものをIT業界で19年を過ごし、20年目に突入したばかりのおっさんが感じているわけですから、それは本当に面白いんです。また、ものすごい多数の目に触れるものに手を入れていることもあり、ただ面白いだけではなく、ものすごい緊張との戦いであることも事実です。自分自身の興味のためのプログラミングではなく、他人に使ってもらうアプリケーション構築であるので、きちんと要求を満たす、ということは最低条件として、想定しているシナリオ上で予期せぬ例外が発生しないようにする、というのも必ず意識しています。

たとえば、次のページにあるSilverlightアプリケーションには、私が考案した安定稼動のためのロジックが入っています。
http://www.microsoft.com/japan/business/solutions/virtualization/rio.mspx

初期のバージョンは別の方が作られたものですが、インターネット上の配置において予期せぬ問題が発生し、私の調査から安定稼動のためのコードを提示して組み込んでいただき、改良を加えたものです。
この単純なアプリケーションでも、トランザクションの問題のように正常動作か例外か、を切り分けるための再帰呼び出しによる仕掛けが入っています。わかってしまえば単純なことなのですが、その単純なことが未経験者のテスト環境ではわからないことがあります。
 
多くの場合、リソースの読み込みはルーズに書いてもテスト環境ではうまく行きます。リソースがダウンロードできない状況をテストしていないからです。でも必ずしもHTTP GETが成功するとは限らないのです。成功しなかったら、失敗という状態にあることをアプリケーションが理解する必要があります。しかし、そのために数多くのif文を書くのは可読性においても保守性においても好ましくありません。
 
で、やったことは、次のようなコードを作ったことです。
var LoadedResourceCount = 0;  // 読み込まれた画像の数
var ExpectedNumberOfResources = 38; // 想定している画像の総数

// 読み込み成功:XAML上は"Loaded"にマッピングされるイベントハンドラ
function OnResourceReady(sender, args) {
    if (LoadedResourceCount >= 0) {  // 画像読み込みエラーが起きてないことを確認して、成功数を加算する
        LoadedResourceCount ++;
    }
}
// 読み込み失敗:XAML上は"ImageFailed"にマッピングされるイベントハンドラ
function OnResourceFailed(sender, args)
{
    LoadedResourceCount = -1;  // 読み込みエラーは-1と定義する
}
 
 
function IsReadyToRunThisApp()
{
    if (LoadedResourceCount == ExpectedNumberOfResources) {  // すべて読み込まれたので実行してよい
        return true;
    }
    else {
        return false; // まだ読み込みが終わっていないので実行してはいけない
    }
}
 
function IsFailedToRunThisApp()
{
    if (LoadedResourceCount == -1) {  // 読み込み失敗しているので、実行できない
        return true;
    }
    else {
        return false;
    }
}
var idTimeout;
function WaitForAllResourceLoaded()
{
    if (IsReadyToRunThisApp() == true ) {
        clearTimeout(idTimeout);
        return true;
    }
    else if (IsFailedToRunThisApp() == true ) {
        clearTimeout(idTimeout);
        return false;
    }
   
}
これを準備した段階で、SilverlightのアプリケーションがXAMLをロードし終えた直後に、
 
idTimeout = setTimeout("WaitForAllResourceLoaded", 500);
// ..
if (WaitForAllResourceLoaded() == false) {
    // 何らかのエラーメッセージを表示して、ブラウザの再読み込みを促す
    return false;
}
 
// 以下、正常系

というコードを仕掛ければリソース読み込みが異常な場合は、最初のif文で判断が付き、トランザクション的な発想で成功か失敗かということを切り分けられるというものです。少なくとも正常系までステップが到達していれれば、Silverlightのランタイム上にはダウンロード済みのリソース(この場合、画像を想定)が見えているので、画像が表示できない、という問題は発生しないことになります。
Webアプリケーションなので、詳細レベルでは、HTTP GETのエラーうんぬんてなことを考えることもできますが、HTTPを利用しているランタイム上のフレームワークが、

・HTTP GETの成功 -> ファイルが見つかりダウンロードできた -> Loadedイベントの呼び出し
・HTTP GETの失敗 -> ファイルが見つからない -> ImageFailedイベントの呼び出し
という形になっていることを想像すれば(実際に、私自身も想像して考案したので)、フレームワーク上のイベントを処理すれば細かいことは気にしなくてよい、ということになります。現実に詳細レベルでは、フレームワーク内で非同期のダウンロードが実行されているので、一見簡単な処理で捕捉できないようにも思えますが、フレームワークを信じれば、単純な問題に帰着できるわけです。結局、リソースが準備できなければ、それ以降の処理をあきらめるしかないので、トランザクション的には失敗なわけです。反対に準備できればそれ以降の処理を継続できるので、トランザクション的には成功。

「ネットワークタイムアウトはどうなるの?」という疑問を感じた方へ、TCP/IPは無通信が一定時間継続するとタイムアウトして終了します。これは結局、HTTPレベルでも失敗なわけなので、問題ないと思います。Ajaxの通信でも正常終了時、タイムアウト(またはエラー発生時)のイベント呼び出しが分かれてますよね。これもWebサービスからの応答をトランザクションに見立てて成功・失敗で切り分けようと単純化しているものだと思います。

そんなわけで、Webリソースの読み込みというトランザクション処理を考えるのもありかもしれませんね。で、「待ってダメならあきらめよう」、Windowsだと「(約2分)待ってダメならあきらめよう」みたいな感じで。
これで、ブラウザ上のリッチクライアントでもリソースのダウンロードの成否がはっきりするので、安心して利用できるのではないでしょうか。皆様もお試しあれ。

本内容はデータベースとは無関係ですが、非同期通信におけるトランザクションとしては他にも応用できるかもしれません。何か面白いアイディアを見つけたら教えていただけると幸いです。

posted @ 2008/04/02 22:04 by 大西彰