2012年5月31日木曜日

localhost外のホストから接続する - YAMAGUCHI::weblog

localhost外のホストから接続する - YAMAGUCHI::weblog:

'via Blog this'

実録・4大データベースへの直接攻撃 - @IT

実録・4大データベースへの直接攻撃 - @IT:
セキュリティアナリストコラム
川口洋のセキュリティ・プライベート・アイズ(25)

実録・4大データベースへの直接攻撃


川口 洋
株式会社ラック
JSOCチーフエバンジェリスト兼セキュリティアナリスト
CISSP
2010/5/18

■情報の入れ物、データベースは大丈夫ですか
 皆さんこんにちは、川口です。そろそろGumblarの話に飽きてきたところでしょうか。今回は以下の4種類のデータベースで、管理用ポートをインターネットにオープンしているとどうなるかについて調べた結果を取り上げます。いずれも管理用ユーザーのパスワードは「脆弱なもの」に設定されています。
  • Oracle(1521/tcp)
  • SQL Server(1433/tcp)
  • MySQL(3306/tcp)
  • PostgreSQL(5432/tcp)
 右側に書いてある番号が管理用ポート番号です。データベースを管理する場合、これらのポートをインターネットに対してオープンにする必要はないはずです。しかし、これらのポートに対して外部から“直接”接続するインシデントが年に数回は発生しています。
 このようなインシデントは、大学のネットワークに接続したサーバがほとんどですが、ホスティングサービスのサーバでもこれらインシデントが発生しています。データベースサーバに対するアクセス制御が不十分なことが原因です。
 データベースが攻撃を受けた頻度を表したものが下のグラフです。
図1 データベース種類別の被攻撃回数(2009年10月~2010年4月・ラック調べ)
 SQL Serverが最も多く攻撃を受けています。攻撃者にとっても最も“おいしい”環境なのでしょう。次いでMySQL、Oracleとなっています。
 PostgreSQLは管理用ポートへの接続すらありませんでした。データベースとしてはそこそこ利用されているはずですが、攻撃者にとっては魅力がない環境なのでしょう。アクセス制御をせずにデータベースを運用する方にはPostgreSQLが最もお勧めですね、というのはもちろん冗談です(笑)。
■SQL Serverへの攻撃
 SQL Serverが攻撃を受けた際に実行されたコマンドは以下のようなものです。攻撃者は脆弱なパスワードを突破したあと、これらコマンドを短時間で実行していますので、おそらく機械的に攻撃しているのでしょう。
図3 SQL Serverへの攻撃コマンド例(クリックで全体を表示)
 1行目と2行目で関数を定義して、3行目でコマンドを一気に実行しています。3行目から18行目は見やすさを考えて改行を入れていますが、実際には1行のSQLコマンドです。4行目から17行目が“&”で連結されたOSのコマンドです。5行目から11行目まででsetuply.sysというファイルにFTPコマンドを追加してコマンドファイルを作成しています。12行目でFTPコマンドファイルを引数に指定して、FTP接続を実行します。
 FTPサーバからはnb.exeと730.exeの2つのファイルを取得しています。それぞれファイル名をnb.exeからsetuply.exeへ、730.exeからtcpser10.exeに変更し、保存しています。そのあとsetuply.exeとtcpser10.exeを実行し、実行したファイルを消去しています。
 実行されたプログラムはボットとして動作しており、攻撃者はこのボットを経由してデータベースサーバを自由に操作します。そのあと、このデータベースサーバは別のIPアドレスから次々とログインされ、ボットを埋め込まれてしまいました。
■MySQLへの攻撃
 次にMySQLへの攻撃を説明します。MySQLもSQL Serverと同様に脆弱なパスワードを用いて突破し、さまざまなコマンドを実行していきました。実行されたコマンドは以下のようなものです。
図3 MySQLへの攻撃コマンド例
 ここから、以下のような手順で攻撃が行われているのが分かります。
  1. ログイン後、変数などの設定を行い、特定テーブルの初期化を行う
  2. concatを使い、不正なプログラムをテキスト形式で送り込む
  3. 送り込んだテキストファイルを実行ファイルに変換
  4. VBスクリプトを作成し、外部のサーバのk.exeを取得し、実行
  5. 後始末
 SQL Serverへの攻撃と同様に、SQLコマンドとOSコマンドを組み合わせながら、外部のサーバに置かれている実行ファイルを取得しています。外部のファイルを取得する方法として、SQL Serverへの攻撃の際にはFTPを利用していましたが、今回はVBスクリプトからHTTP経由で取得しています。これは攻撃者の好みの問題だと思いますが、データベースサーバから不審な通信が発生していることには違いありません。
 MySQLへの攻撃で特徴的なことは、Windowsのバイナリファイル(k.exe)を取得していることです。実はこのデータベースサーバはLinux上でMySQLが稼働しており、Windowsのバイナリファイル(k.exe)を実行することができません。攻撃者はデータベースが稼働しているOSを確認することなく、バイナリファイルを実行しました。このファイルの実行が失敗に終わると攻撃者はそのまま接続を切っていました。
 Windows上でMySQLが稼働しているサーバはWindowsのバイナリファイル(k.exe)を実行されて、ボットとして動作してしまいました。そのあとも何度もMySQLには侵入されたのですが、侵入先のOSによらず、毎回Windowsのバイナリファイルの実行を試みています。
■Oracle、PostgreSQLへの攻撃
 Oracleへの攻撃はSQL ServerやMySQLに比較すると非常に少なく、データベースへ接続が行われたのですが、パスワード認証を突破するまでには至りませんでした。攻撃者の辞書ファイルが未熟なのでしょうか。ここでは面白いデータを得ることはできませんでした。
 なお、Oracleへ攻撃するツールを確認していますが、攻撃数が少ないのはOracleが攻撃者にとっておいしい市場ではないのかもしれません。
 また、PostgreSQLはデータベースへの接続すらなく、攻撃の対象外と認識されているようです。PostgreSQLが使われている確率が低いのか、PostgreSQLユーザーの意識が高いと思われているのかは不明ですが、PostgreSQL用の攻撃ツールを誰も作っていないというのが本命ではないかと思っています。

 今回はデータベースの管理用ポートに対する攻撃を取り上げました。このような攻撃はデータベースへ接続できるIPアドレスが制限されてさえいれば、まったく心配する必要はありません。しかし「普通ありえないよね」という攻撃がJSOCで観測されていることも事実ですので、念のためデータベースのアクセス制御について確認ください。
  普通と違うといえば、先日「普通とは違う」ことを目指した友人の結婚式に参加しました。「席次表とメニューはテーブルのデジタルフォトフレームで」「新郎のプレゼンテーションから開始」「最後に参加者全員がメインテーブルで記念撮影」という、いままで見たことも聞いたこともない結婚式でした。それが新郎新婦の狙いだったようで、とても新鮮で楽しい結婚式でした。
 私の誕生日でもある情報セキュリティの日(2月2日)に入籍した新郎新婦を祝うために、今日も飲みに行くのでした。

'via Blog this'

平成農園

平成農園:
北山 情報
'via Blog this'

【楽天市場】人気レディースファッション続々入荷中:レディースファッションbobostyle[トップページ]

【楽天市場】人気レディースファッション続々入荷中:レディースファッションbobostyle[トップページ]:
北山輝彦

'via Blog this'

2012年5月30日水曜日

MS AccessからMySQLのデータベースに接続する | hm-lab

MS AccessからMySQLのデータベースに接続する | hm-lab:

研究文献のリストを何でつくるかずっと悩んでいたのですが、結局、データをMySQLに格納し、MS AccessをフロントエンドのUIとして使うことにしました。
以下、ODBCを介してMS AccessからMySQLに接続する方法をログしておきます。手元の環境は、Windows Vista + MS Access 2007 + MySQL 5.0.51bです。
  1. http://dev.mysql.com/downloads/connector/ から、Connector/ODBCをダウンロードしてインストールする
  2. [コントロールパネル]―[管理ツール]―[データソース(ODBC)]をダブルクリックして、[ODBCデータソースアドミニストレータ]ダイアログを起動する
  3. [システムDSN]タブを選択し、[追加]ボタンをクリックする
    (↓クリックで拡大)
  4. MySQL ODBC 5.1 Driverを選択して、[完了]をクリックする
    (↓クリックで拡大)
  5. [MySQL Connector/ODBC Data Source Configuration]ダイアログが起動するので、必要な情報を入力して[OK]をクリックする
    • Data Source Name: この接続の識別名
    • Description: この接続の説明
    • Server: データベースサーバー
    • User: データベースに接続するためのアカウント
    • Password: 上記アカウントのパスワード
    • Database: 接続対象のデータベース
    (↓クリックで拡大)
  6. [システムDSN]タブに新しいデータソースが追加されていることを確認して、[OK]
    (↓クリックで拡大)
  7. Accessを起動して、空のデータベースを作成する
  8. [外部データ]―[その他]―[ODBCデータベース]を選択して、[外部データの取り込み]ウィザードを起動する
  9. [リンクテーブルを作成してソースデータにリンクする]を選択して、[OK]
    (↓クリックで拡大)
  10. [コンピュータデータソース]タブで、先ほど作成したデータソース(testdb)を選択し、[OK]をクリックする
    (↓クリックで拡大)
  11. 接続対象にするテーブルを選んで、[OK]
    (↓クリックで拡大)
  12. 指定したテーブルへのリンクが作成されていることを確認する
    (↓クリックで拡大)
これで、AccessのUIからMySQLのデータを操作できるようになりました!

Related Posts:



'via Blog this'

EASEUS Partition Master Home Edition--オールフリーソフト・Windows 7/Vista対応のフリーソフト--

EASEUS Partition Master Home Edition--オールフリーソフト・Windows 7/Vista対応のフリーソフト--: "
ダウンロード Softpedia "

EASEUS Partition Master Home Edition 9.1.1


'via Blog this'

AccessのアップサイジングとSQL Serverプログラミング

Access
Accessのアップサイジングと
SQL Serverプログラミング

Access Upsizing Toolがもたらすデータベースアプリケーションのシフトをめぐる考察
秋月 巌 AKIZUKI, Iwao
首都圏コンピュータ技術者共同組合

なぜ,SQL Serverなのか?
時々「なぜ(ORACLE7ではなく)SQL Serverなのか?」と考えることがある.「なぜ(UNIXではなく)WindowsNTなのか?」という問いに対してなら容易に説明できるのに,ORACLE7 Workgroup serverに対するSQL Serverの優位性ははっきりしない.また,その逆も明確でない.
こんなことをいうと怒られてしまいそうだが,多分,RDBMSはORACLEだろうが,Microsoftだろうが,たいして差がないのだろう.ある人がORACLE7のロックシステムの優秀性を言えば,別の人はSQL Serverの低価格や,接続の容易さを長所としてあげるだろう.だが,システム内蔵のレコードロックシステムが必須になるケースはそう多くないし,世間がORACLE7に対して抱いている高価格というイメージは,UNIX版に対するものから生じる誤解が含まれてはいないだろうか.
もっとも,クライアントの開発ツールにVisual Basicを選択した場合は,SQL Serverのメリットが活きてくる.Visual Basicアプリケーションから見たとき,SQL Serverは1つの巨大なOLEオブジェクトだということができるし,RDOを使ってODBC経由でサーバーにアクセスする場合,ODBCドライバの安定性も大きなポイントになる.Visual Basicが今後,クライアント/サーバーシステム開発ツールの主流になるのは間違いがないから,クライアントツールに合わせてSQL Serverが選ばれるというケースもありえる.
ただ,そういった本末転倒な理由だけでなく,WindowsNT Serverを導入した企業が,SQL Serverを導入するケースはますます増えるはずである.それは,今後,SQL Serverが受け入れられていく市場が,過去の資産との互換性を必要としないということの他に,OEACLEというブランドの神通力が通じない世界であるということにも関係がある.
さらには,小規模向けシステム構築に向いたベストセラーのRDBMSパッケージであるところのMicrosoft Accessの存在も,SQL Server導入の引き金になる公算が高い.

Access & Developer*s Toolkit
Accessは低価格,多機能なRDBMSだが,SQL Serverとは設計されているコンセプトが違う.これらの2つの違いを説明するのに,デスクトップPCとPCサーバーを引き合いにだすことが多い.この2種類のPCは機能も性能も違わないのに価格には4倍の開きがある.この価格差は,主に信頼性や対(耐)障害性のために費やされている.
SQL ServerとAccessの差も,これに類する.機能はAccessの方が多いくらいである.そのため,MicrosoftはAccessによってSQL Severを操作したり,プログラミングをしたりするための仕掛けを用意している.一部はAccessのネイディブな機能として提供され,残りはAccess Developer*s Toolkit(ADT)のAccess Upsizing Tool(AUT)として提供される.
ただ,Microsoftは,Accessでシステム開発をしておいて,必要に応じてAUTでアップサイズすれば,デスクトップシステムがC/Sシステムとして完成すると宣伝しているが,これはほとんどまやかしである.そうではなくて,AUTはSQL Serverを正しく理解している人が作業工数を減らすために使うべきものである.
つまり,Accessがわかっていれば,SQL Serverが使えるといいたげなキャッチフレーズはMicrosoftのマーケティング戦略以外の何ものでもない.しかし,このマーケティングは圧倒的な成功を納めるだろう.少なくとも,新規に導入するユーザーが,まるっきり新しいものよりは,少しは身近にあるものを選択することは容易に想像がつく.
確かに,導入時にAccessの機能を使うと,SQL Serverは本当に簡単に動きはじめる.インストールは簡単だし,接続だって,ODBCの設定でサーバー名さえ指定すれば,ほとんど何の問題もなく終了するはずである.
しかし,SQL Serverはバックアップ一つとってみても,Accessのようにファイルをコピーをしておけばいいというものではない.正しくバックアップの手順を踏み,メンテナンス計画を立てる必要がある.それ以前にデータベースを作成するためだけでも,データベースデバイスの作成や,データベースの設定を行なう必要がある.
AccessユーザーがSQL Serverを使うべきでないと言っているのではない.何にでも入口は大切だし,チャレンジ精神はもっと重要だ.しかも,SQL Serverの必要性のある現場は多いのに,エンジニアがいないというだけの理由で導入できない企業も現実的に多い.ただ,それなりの覚悟が必要であり,導入した後も学習のための努力を維持する必要がある.もし,それが無理ならば,Access単体で処理する方が効果的であることは断言する.

データベースマネージメントツールとしてのAccess

図1:SQL Enterprise Manager
SQL Serverにはデータベースを操作するためのSQL Enterprise Manager(図1)が付属する.これはSQL Serverに特化したデータベース操作ツールで,SQL Serverの標準装備とみなすことができる.SQL Serverのエンジニアは,通常このSQL Enterprise Managerを操作し,データベースやテーブルを作成したり管理するようになる.一方,SQL ServerにはインタラクティブSQLと呼ばれるツールが付属し(SQL Server6.5からはインタラクティブSQLの機能もSQL Enterprise Managerに統合された),SQLを使って,データベースの操作をおこなえる.つまり,インタラクティブSQLはCUIツールで,SQL Enterprise Managerは,そのGUIバージョンと呼ぶことができる.
一方,AccessはJetデータベースエンジンを標準で装備するが,汎用的なデータベースマネージメントツールである.というのは,Jetデータベースエンジン自体がドライバの開発により,汎用的に使用できるような設計になっているからである.PARADOXテーブルや,xbaseテーブルのような代表的なファイル共有データベーステーブルにアクセスできるほか,ODBCを経由してSQLデータベースサーバーにリンクすることもできる.
だから,Accessネイティブの機能だけでも,SQL Serverに対してテーブルのインポート/エクスポートが可能である.テーブルのインポート/エクスポートができるということは,Accessでテーブルを作成しておいてSQL Serverに出力すれば,SQL Serverのテーブル作成をAccessでできるということになる.オートナンバー型のような互換性のないデータ型は使えないが,通常使うようなデータ型は互換性があるので,問題が起きることはあまりないだろう.


Access Upsizing Toolの概要

図2:アドインツール
このようなAccessの特徴を活かし,SQL Server用に機能を拡張したものがAUTである.AUTに付属する機能には,SQL Serverブラウザとアップサイジングウィザードがある.これらはAUTをインストールすると,Accessのアドインとして登録される(図2).


図3:SQL Serverブラウザ
SQL Serverブラウザ(図3)は,SQL Enterprise Managerの機能の一部をAccessのインターフェイス上で提供するものである.ODBCを経由してSQL Serverに接続すると,普段Accessのテーブルが表示されているデータウインドウにはSQL Serverのオブジェクトが表示される.操作はAccessのスタイルのまま,Accessのオブジェクトを扱う要領でSQL Serverのオペレーションができる.また,SQL Enterprise Managerではデータを参照するためにSQLを書かなければならないが,SQL Serverブラウザなら,データウインドウからボタンのクリックで参照できる.ただ,SQL Executiveの設定や,バックアップの指定など,SQL Enterprise Managerでなければ利用できない機能も多い.Accessだけで,すべてがこと足りるわけではない.

図4:アップサイジングウィザードで新規データベースを作成
もう1つのツールであるアップサイジグウィザード(図4)は,Accessで構築したデータベースをSQL Serverに移植するためのエキスパートシステムである.アップサイジングする際に新規にデータベースデバイスやデータベースの作成ができるため,SQLブラウザと組み合わせて使うことにより,SQL Serverをスタートさせるための処理はほとんどAccessで代行してしまえる.


AUTはアップサイズしたデータベースを,そのままAccessのMDBファイルにリンクを張るので,今までアクセスで構築していたシステムが,そのままSQL Serverを使って運用できる.ただ,このような安直な方法はC/Sシステムとしてはまともに動作しない.それはJetデータベースエンジン経由でサーバーにアクセスすることにパフォーマンスの問題があるのが主な要因だが,それ以外にも多くの条件が複雑に絡み合う.

Upsizing Toolの限界
現実的な話として,オープンシステムはまともに動けば「運がいい」というレベルのものである.大手ベンターのあるセールスマンは「オープンシステムが動くのは奇跡」と言い切っている.コンピュータジャーナリズムはオープンシステムのメリットを主張することに存在意義を見出していたが,その影には多くの失敗例がある.
ネットワークを使用するシステムを設計するときに考慮すべき条件は多い.
1 データボリューム
2 同時アクセスの頻度
3 使用できるネットワークの容量
4 サーバーの負荷
5 マシンスペック
 これ以外にもオペレータの習熟度などシステム以外の条件も考慮しながら,全体を設計する必要がある.このようにケースごとに異なる条件をまったく考慮にいれず,一律にAUTがおこなうアップサイズの結果が満足に機能するわけはない.パフォーマンスチューニングはシステムを完成してからおこなうものではなく,設計の段階で配慮しておくべきものなのである.
AUTによるアップサイズが成功するにはいくつかの条件が必要である.
1 レコード数が少ない
2 アクセスの競合が発生しない
3 ネットワークトラフィックに余裕がある
4 クライアントマシンにパワーがある
 もちろん,こんな条件が得られるならば,アップサイジングなどする必要はない.数少ないメリットは信頼性の向上だろう.

エクスポート VS アップサイズ
こんなAUTだが,アップサイズのメカニズムは優秀である.ただし,それを理解するためには,アップサイズとエキスポートの違いについて理解することが不可欠の要素となる.
まず,Accessの機能であるエクスポートは,Jetデータベースエンジンのオブジェクトであるテーブルの構造とデータを他のデータベースに出力する.
それに対し,AUTがおこなうアップサイジングはテーブルの構造だけでなく,インデックス,入力規則,デフォルト値などの属性も同時にエクスポート先のテーブルに付加する.また,テーブル間のリレーションが設定されている場合は,そのリレーションに該当する機能をエキスポート先のデータベースに設定する.
機能的にSQL ServerとAccessで一致しない場合,AUTはSQL Serverにない機能をトリガを使用してシミュレートする(表1).この処理はAccessのオートナンバー型フィールドをテーブルに設定している場合も適用される.

表1:各オブジェクトのマッピング
Access オブジェクトSQL Server オブジェクト
データベースデータベース
テーブルテーブル
インデックスインデックス
フィールドフィールド
既定値デフォルト
テーブル入力規則更新および挿入トリガ
フィールド入力規則更新および挿入トリガ
フィールドの“値要求”プロパティ更新および挿入トリガ
リレーション更新,挿入,削除トリガ ,宣言参照整合性 (DRI) 制約



AUTを使ったプログラミング

図5:テーブルに入力規則を設定
図6:アッフサイジングのオプション
 図5はAccessでつくったNameテーブルの構造とプロパティである.「Zip」フィールドには0以上の値を要求する入力規則が設定されている.このテーブルを,AUTによってSQL Serverにアップサイズしてみる.アップサイジングウィザードが,どのプロパティをエキスポートするかきいてきたら,必要なプロパティやオブジェクトを選択する(図6). 


図7:トリガの生成
 ウィザードの質問に答え終ると,AUTはSQL Serverに対してアップサイズをおこなう.完成したテーブルには図7のようにトリガが設定される.リスト1,2はAUTが生成したコードである. 
 更新,挿入トリガには次のコードが生成される.このコードは「Zip」フィールドに0以下の値がコミットされたら,エラーを発生させ,処理を取消すことを指示している.
IF (SELECT Count(*) FROM inserted WHERE NOT (Zip>0)) > 0
    BEGIN
        RAISERROR(777685, 16, 1)
        ROLLBACK TRANSACTION
    END
このようにAccessで設定した機能を処理するために,AUTはプログラムを生成する.たとえば,親テーブルのレコードを削除したら,それにリンクしている子テーブルのリンクレコードも自動的に削除するといったトリガの生成も,Accessにリレーションを設定することで可能となる.

リスト1:挿入トリガ
  if exists (select * from sysobjects where id = ⇒
  object_id('dbo.Name_挿入トリガ') and sysstat & 0xf = 8)
 drop trigger dbo.Name_挿入トリガ
  GO

  CREATE TRIGGER Name_挿入トリガ ON Name FOR INSERT AS

  /*
   * フィールド 'Zip' の入力規則
   */
  IF (SELECT Count(*) FROM inserted WHERE NOT (Zip>0)) > 0  
    BEGIN

        RAISERROR(777685, 16, 1)
        ROLLBACK TRANSACTION
    END

  GO

 注:⇒箇所は画面の都合で折返してます


リスト2:更新トリガ
  if exists (select * from sysobjects where id = ⇒
  object_id('dbo.Name_更新トリガ') and sysstat & 0xf = 8)
 drop trigger dbo.Name_更新トリガ
  GO

  CREATE TRIGGER Name_更新トリガ ON Name FOR UPDATE AS


  /*
   * フィールド 'Zip' の入力規則
   */
  IF (SELECT Count(*) FROM inserted WHERE NOT (Zip>0)) > 0  
    BEGIN
        RAISERROR(777685, 16, 1)
        ROLLBACK TRANSACTION
    END
  GO

 注:⇒箇所は画面の都合で折返してます


IISアドインによるIDCコードの自動生成

図8:IISアドインメニュー
図9-1:作成するシステムのタイプを選択
図9-2:入力する対象フィールドを選択
図10:生成された入力フォーム
もう一つ,マイクロソフト株式会社のホームページからダウンロードできるAccess 95 Value Packに付属しているIISアドインについて触れておきたい.このツールもまた,Accessのアドインプログラムとして動作し(図8),IDCプログラムに必要なIDCファイル,フォームつきのHTMLファイル, 結果のテンプレートとなるHTXファイルを自動生成する.AUTのWeb専用版という訳ではもちろんないが,Accessデータベースのシフトという観点では関連があり,用途を絞った分だけむしろ利用されるケースは多いのではだろうか.
IDC(Internet Database Conector)は前々号でも説明したが,Microsoft Internet Information ServerとODBCを接続するISAPIアプリケーションである.IDCを利用することで,容易にWEBからデータベースへとアクセスするためのシステムが構築できる.
IDCはODBC汎用に設計されているため,ODBCドライバのあるデータベースならば,どのデータベースにでも接続できる. AccessのIISアドインはIDCシステム作成に必要なファイルを,Jetデータベースエンジンを元に作成する.これらのファイルはJetデータベースエンジンを使用することを前提に生成されるが,テーブルの構造さえ一致していれば,無変更でSQL Serverに利用できる.
IISアドインが提示する質問(図9)に答えていけば,入力フォーム(図10)やクエリー処理に必要なファイル(リスト3)を作成する.


作成できるのは次のようなタイプのページである.
1 スタティックページIISアドインで作成時のテーブルやクエリーのデータをHTMLとして出力する

2 ダイナミックページ問い合わせを発行時のデータを元にHTML動的に生成

3 検索ページ入力されたキーを元に検索を実行し,結果をHTMLとして返す

4 挿入ページHTMLフォームからデータを入力し,データベースにデータをストアする.
これらを上手に利用すれば,有効なイントラネットデータベースシステムを短時間で作成できる.生成されるフォームのクォリティは十分高い.ただ,高度なシステムを作成しようと思つたら,動的に作成されるページが次の入力フォームになる必要があるが,そのようなアーキテクチャには対応していない.
リスト3:次行キャプション
  Datasource: Web SQL
  Template: ZipCode.htx
  DefaultParameters:
  SQLStatement:
  +INSERT INTO "Zip" ("郵便番号", "住所")
  +VALUES ('%郵便番号%', '%住所%');
  #IDC-Insert FrontHTM-ZipCode.htm ReportHTX-ZipCode.htx  


まとめ
AccessはSQL Serverのフロントエンドとして開発されたわけではない.独立したRDBMSなのだが,SQL Serverを活用するために利用できる機能が装備されている.それにアドインとして機能するAUTは動作の不安定な部分もあり,信用できるツールとはいいにくい.それでも,わずらわしい処理を代行したり,Accessのユーザーフレンドリな環境とSQL Serverをつなぐブリッジの役割を果たす効果は大きい.
アップサイジングツールという言葉に惑わされさえしなければ,使用する価値のあるツールである.アップサイジングという言葉には,オーバードライブプロセッサのように,簡単な差し替えだけで性能が劇的にアップするようなイメージがある.AUTにそのような効果はない.それでも,使いなれた操作環境で,より大規模なシステムに対応できるRDBMSを操作できるのは,Accessユーザーにとって大きなメリットだろう.のアップサイジングとSQL Serverプログラミング:


'via Blog this'

「オープンソース」を使ってみよう (第17回 JasperReports Server編) 日本JasperServerユーザ会(JJSUG)

「オープンソース」を使ってみよう (第17回 JasperReports Server編) 日本JasperServerユーザ会(JJSUG):

「オープンソース」を使ってみよう (第17回 JasperReports Server編) 日本JasperServerユーザ会(JJSUG)

 No Comments
  
————————————————–
日本JasperServerユーザ会(JJSUG)
佐伯 健介(管理人)
————————————————–

■はじめに

日本JasperServerユーザ会(JJSUG)の管理人 佐伯と申します。
JJSUGは2008年10月に発足して4年目になるユーザ会です。
今回はJJSUGの主として扱っているJasperReports Serverをご紹介いたします。

■JasperReports Serverとは?

JasperReports Serverとは、Jaspersoftという会社が提供しているオープンソー
スのビジネスインテリジェンス(BI)ツールです。
BIとは、蓄積されたデータを使ってデータをいろいろな表現方法で「見える化」
するアプリケーションと思っていただければと思います。BIについては、先の
OSC2012Tokyo Springでセミナーを開催しましたのでそちらの資料を参照くだ
さい。
JasperReports Serverには無償のコミュニティ版と有償の商用版があります。
ここではコミュニティ版の最新版JasperReports Server4.5を対象とします。

■JasperReport Serverでできること

JasperReports Serverの機能としては、大きくレポート機能とOLAP分析機能に分
けられます。
1)レポート機能
レポート機能はサーバ上でのレポートの管理、スケジューリングによるレポート
作成機能などを提供します。JasperReportsというJavaで広く使われているライ
ブラリを使用しており、JasperRports Serverに登録しておけば、ファイル形式
で同じレイアウトのレポートを出力することができます。


2)OLAP分析機能
OLAP分析機能とは、データをキューブという形式で管理することで、様々な切り
口でデータを眺めることができます。
イメージとしてはExcelやOpenOffice系のCalc等で使えるピボットテーブルに近
いです。
その他、レポートやキューブ定義などを役割やユーザごとにアクセス権を設定で
きるユーザ管理機能も充実しています。

■BIは難しくない

最近ERPやCRMといった、商用製品は高く、なかなか触って見ることが出来なかっ
たツールでもOSSが現れてきています。
BIツールも同様、JasperReports Serverを始め、オープンソースのBIツールも出
てきています。
OSSの強みは、まず使ってみることができることです。BIが今ひとつピンとこな
い方こそ、まず試してみてください。

■無償だから個人でもいろいろ使ってみよう!

「ビジネス」インテリジェンスという名前にとらわれると企業等でしか使えない
ツールと思われるかもしれません。
しかし、無償のツールですから個人でも使えます。
例えば、こんな使い方はいかがでしょう?
・家計簿のデータを分析して節約する
・身長・体重などのヘルスデータをグラフ化して、ダイエットの励みに!
・学校の生徒会等の予算管理を見える化!
無償なのですから利用方法はユーザであるあなたが考えてください!

■入手方法・インストール

コミュニティ版はJaspersoftが運営しているJasperForgeからダウンロードでき
ます。このサイトからはJaspersoftが提供している様々なツールをダウンロード
できます。
このサイトからJasperReports Serverを選択してください。
3つのOS(Windows,Mac, Linux)事に32bit/64bitに対応したインストーラ、
及びWAR 形式やソースコードが用意されています。ご自分の環境に最適なものを
選択してダウンロードしてください。(英語のサイトですが、恐れずにGo!)
初めて試してみたいという方はインストーラを利用がお勧めです。Java VMから
Apache TomcatやPostgreSQLといった必要なツール及びサンプルDBまでまとめて
インストールされます。

■是非JJSUGにご参加ください!

JJSUGは、ユーザ側で利用する際の疑問や経験といったノウハウを蓄積し、共有
することで、JasperReports Serverを始めとするJaspersoftのBIツールをより使
いこなすことを目的としています。
今はどちらかと言うとエンジニアが主体になっていますが、是非ユーザ側の皆さ
んにも参加いただいて意見や質問を投稿してください。
定期的に勉強会(東京周辺)も行なって、オンラインではできないメンバー間交
流を深めております。
また、昨年から福岡を中心にJJSUG Qshuが立ち上がりました。少しづつ地方でも
展開していきたいと考えています。
JJSUGにある知見はどんどんシェアしようと思いますし、無ければ本家にフィー
ドバックし、対応を促すなどアメリカ本家とも連携をしていきたいと考えています。
ご関心を持っていただけたら、是非下記のサイトにアクセスください!

'via Blog this'

【WordPress】WordPressで “会員制サイト” を実現するプラグイン『WP-Members』と『Members Only』(設定晒し有) | glad design blog - Crazy One -

【WordPress】WordPressで “会員制サイト” を実現するプラグイン『WP-Members』と『Members Only』(設定晒し有) | glad design blog - Crazy One -:

【WordPress】WordPressで “会員制サイト” を実現するプラグイン『WP-Members』と『Members Only』(設定晒し有)


'via Blog this'

LimeSurvey - オヤジのサーバ構築に挑戦! Wiki*

LimeSurvey - オヤジのサーバ構築に挑戦! Wiki*:

アンケートシステム構築:LimeSurvey 

LimeSurveyはオープンソースで配布されており、人気の高いアンケートシステム。

やりたいこと 

IE等のWebブラウザから、アンケートシステムを提供可能とする。

条件 

使用OSCentOS5.5 64bit
アプリApache+PHP+MySQL (CentOS付属)
文字コードutf-8

ファイル入手 


MySQLデータベース作成 

(1)MySQLデータベース作成 

【telnet】
  • スーパーユーザでログイン
$ su
パスワード:
  • MySQLにログイン
# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  • 「limeservey」データベース作成
mysql> create database limesurvey ;
Query OK, 1 row affected (0.02 sec)
  • 「limeservey」ユーザ作成
mysql> grant all privileges on limesurvey.* to limesurveyuser@localhost
                                              identified  by 'limesurveypass';
Query OK, 0 rows affected (0.00 sec)
  • 終了
mysql> exit
Bye
#
  • データベース接続に問題が無いか確認
# mysql -u limesurveyuser -plimesurveypass limesurvey
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 223
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit
Bye

インストール 

(1)ファイル転送 

【FTP】
ftp にて、ユーザエリア「/home/hogehoge」にlimesurvey187plus-build8518-20100323.zipをアップ

(2)インストール 

【telnet】
  • パッケージがあるか確認
# ls -l
-rw-r--r-- 1 hogehoge hogehoge 23365860  7月 26 15:14
                               limesurvey187plus-build8518-20100323.zip
  • パッケージを解凍
# unzip limesurvey187plus-build8518-20100323.zip
Archive:  limesurvey187plus-build8518-20100323.zip
   creating: limesurvey/
  inflating: limesurvey/COPYRIGHT.php
  inflating: limesurvey/LICENSE.php
     :
  • 確認
# ls -l
drwxr-xr-x 12 root     root         4096  3月 23 22:23 limesurvey
-rw-r--r--  1 hogehoge hogehoge 23365860  7月 26 15:14
                                limesurvey187plus-build8518-20100323.zip

(3)limesurveyファイルをhtml直下にコピー 

  • ファイルコピー
# cp -R limesurvey /var/www/html/
  • 確認
[root@hogehogeServer hogehoge]# ls -l /var/www/html/
drwxr-xr-x 12 root   root   4096  7月 26 15:21 limesurvey
  • 所有者変更
# chown -R apache:apache /var/www/html/limesurvey/
  • 確認
# ls -l /var/www/html/
drwxr-xr-x 12 apache apache 4096  7月 26 15:21 limesurvey
  • 権限変更
# chmod 775 /var/www/html/limesurvey/tmp/
  • 確認
# ls -l /var/www/html/limesurvey/
drwxrwxr-x  2 apache apache   4096  7月 26 15:21 tmp

設定 

(1)limesurvey config.php設定 

  • config編集
# vi /var/www/html/limesurvey/config.php
$databasetype       =   'mysql';
$databaselocation   =   'localhost';
$databasename       =   'limesurvey';
$databaseuser       =   'root'; 
$databasepass       =   '';
  ↓
$databasetype       =   'mysql';      ← 変更なし確認
$databaselocation   =   'localhost';  ← 変更なし確認
$databasename       =   'limesurvey'; ← 変更なし確認
$databaseuser       =   'limesurveyuser'; 
$databasepass       =   'limesurveypass';

(3)limesurvey設定 

【Web】
  • 「Populate datbase」ボタン押下
    「Database `limesurvey` has been successfully populated.」と表示
  • 「Main admin screen」ボタンを押下
    「Everything is fine - you just forgot to delete or rename your LimeSurvey installation directory (/admin/install).
    Please do so since it may be a security risk.」と表示

(4)後処理 

【telnet】
  • installディレクトリ削除
# rm -Rf /var/www/html/limesurvey/admin/install/
  • 終了
# exit
exit
$

動作確認 

以下URLにアクセス
http://192.168.0.10/limesurvey/admin/admin.php → 「You have to login first.」画面が表示
→以下名称でログイン
Username:admin
Password:password
Language:日本語-Japanese
・・・管理画面になる。
★完了

遭遇したトラブル 

「Everything is fine - you just ~」エラー発生 

問題:
http://192.168.0.10/limesurvey/admin/admin.php にアクセスしても「Everything is fine - you just ~」になる。
原因:
/var/www/html/limesurvey/admin/install/ 削除漏れ

「Can't connect to LimeSurvey database. Reason:~」エラー発生 

問題:
http://192.168.0.10/limesurvey/admin/admin.php にアクセスしても
「Can't connect to LimeSurvey database. Reason: Access denied for user 'limesurvey'@'localhost' (using password: YES)」となる
原因:
mysql作成ミス。db名、ユーザ名、パスワード再確認、わからない場合はMysql再作成すること。

謝辞 

テキスト作成に当たり、以下サイトを参考にさせて頂きました。ありがとうございます。


'via Blog this'