2008年5月31日土曜日

OracleXEサーバーを利用して、外部からSQLを利用できるようにする

やっとこさ、電気コンロの修理が終わって、
お湯を沸かせることができるようになった。
単なるスイッチの接触不良で修理を頼んで、すでに1ヶ月も経ってます...
たらいまわしの世の中にうんざりです。

では、第3回目のお題は「OracleXEサーバーを利用して、外部からSQLを利用できるようにする」です。

Oracleは有料や評価版(制限日数あり)だけだと思ったら、
機能は劣りますが、登録だけで無料で利用できる「OracleXE」が存在しました。
Oracle技術サイト日本版「OTN japan」ではダウンロードできないため、
US OTNからダウンロードが必要です。
(OTN japanのSELECT COUNTRYをUnited StatesにしてもUS OTNに繋がる)

・ダウンロード方法
「US OTNのDownloadsのタブから、Database 10g Express Editionを選択」→
「Oracle Database 10g Express Edition for Microsoft Windows を選択」→
「Accept Agreeをクリック、OracleXEUniv.exeとOracleXEClient.exeをユーザ登録してダウンロードする」

・インストール
OracleXEUniv.exeをダブルクリックして、次へを選択で完了。
ここで設定したパスワードはsystemユーザのログインに必要になる。
















・Windowsファイアウォール設定
「コントロールパネル」→「Windows ファイアウォール」→「有効に設定」→「例外タブでポート追加」→「名前:OracleXE、ポート番号:1521、TCPを設定する」(スコープでは任意もしくはカスタムで個別で設定されていること)

・ルータ設定
「ルータのNATアドレス変換をLAN側IPアドレスをサーバのローカルIP、プロトコルはTCP、ポート番号は1521に設定」→「IPフィルタは外部装置から開始されるTCPセッションを遮断しないようにする」

・動作確認
「スタート」→「すべてのプログラム」→「Oralce Database 10g Express Edition」→
「SQLコマンドラインの実行」

「connect system/インストール時のパスワード」
→「接続できること」

クライアント側(ルータ内ではない外部パソコン)で、
OracleXEClient.exeをインストール。(次へを押すだけ)
すべてのプログラムから「SQLコマンドラインの実行」を選択。
「connect system/インストール時のパスワード@サーバのグローバルIP」
→「接続できること」

SYSTEMユーザにログインして、デモ環境を作ってみる。
/*ユーザ作成*/
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO HOGE IDENTIFIED BY HOGEHOGE;
ALTER USER HOGE DEFAULT TABLESPACE USERS;
ALTER USER HOGE TEMPORARY TABLESPACE TEMP;
/*テーブル作成*/
CREATE TABLE hoge.TEAM
(NO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
NAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;
/*データ追加*/
INSERT INTO hoge.TEAM VALUES
(10,'HOGE HOGE','NEW HOGE');
/*更新*/
COMMIT;

これで、HOGEユーザからTEAMテーブルを編集することができます。

めでたし、めでたし。

OracleXEにはNet Configuration Assistantを使って、
接続情報の設定(network\admin\tnsnames.ora)がないみたいです。
正規版のOracleからOracleXEに接続する場合は、Net Configuration Assistantを使って、
設定が必要みたいです。
サービス名:xe
ホスト名:OracleXEインストールしているマシン名もしくはIPアドレス
ネットサービス名:xe.world






2008年5月29日木曜日

一枚のLANカードに複数のIPアドレスを割り当てる方法

毎日書いていこうと思ったが、数日経っていた。
続けていくのは大変なことだと思いましたとさ。

では、第2回目のお題は、前回宣言した「一枚のLANカードに複数のIPアドレスを割り当てる方法」です。

二枚のLANカードを利用すれば、複数のIPアドレスが信じていた昔の自分が懐かしい...
競合が起こってダメだった記憶が鮮明に残っています。
リベンジです。

では、一枚のLANカードに複数のIPアドレスを割り当てる方法は以下のとおり。
→「インターネットプロトコル(TCP/IP)をクリックして、プロパティをクリック」



















今のご時世はDHCPなので、「IPアドレスを自動的に取得する」になっているが、
「次のIPアドレスを使うを選択する」(サブネットやDNSの各設定はプロバイダに加入した際の資料に
乗っているはず)にすると、詳細設定が選択できるようになり、詳細設定をクリックする。


















「IP設定タブの追加」→「追加するIPアドレス、サブネットマスク入力」



















これでおしまい。ためしにコマンドプロンプトでipconfig、pingしてみました。
どちらともちゃんとつながっていました。




















今日は簡単でした。

一枚のLANカードに複数のIPアドレスを割り当ての利用方法として、
1台で複数のWebサイトを実現に利用できそうです。以下の②に該当します。


①1個のIPアドレスだけを割り当てて、待ち受けるポート番号を複数用意して、ポート番号ごとにWebサイトに割り当てる。(標準は80番、社内用は8080番等。ただし、80番以外は明示的に指定が必要です。例:http://www.hogehoge.local/:8080)


②80番ポートを使って複数のWebサイトを公開できるので、URL指定時にポート番号を
記述する必要がいらない。
第1回のお題でのインターネットインフォメーションサービスのWebサイトアイコンを右クリックして、
「新規作成」の「Webサイト」を追加して実現できる。
でも、これができるのはWindows Serverだけっぽい。
Windows XP Professionalではできなかった...


また、明日

2008年5月26日月曜日

外部からルータ越えしてファイル共有する

パソコンをいじった時のメモ書を載せていきます。
また、その日に思ったことも書いていく予定。

では、第1回のお題は、「外部からルータ越えしてファイル共有する」です。

共有フォルダはLAN向き(Windows独自プロトコル(SMB))、
インターネット経由はWebフォルダ(HTTP+WebDAV)らしいです。

ので、Webフォルダ(IIS+WebDAV)で外部からルータ越えしてファイル共有することに挑戦しました。
HTTPサーバになる方のOSはWindows XP Professionalです。

・IISインストール


「スタート」→「コントロールパネル」→「プログラムの追加と削除」→「Windowsコンポーネントの追加と削除」→「IISにチェックオンして次へ(XPのCDが必要)」

















・外部アクセスのユーザ作成、共有するフォルダ(C:\hoge)作成、アクセス権設定(NTFS)

「エクスプローラのツールメニュー→フォルダオプション」→「表示タブの簡易ファイルの共有を使用するをチェックオフ」
「管理ツール」→「コンピュータの管理」→「ローカル ユーザとグループのユーザを右クリックから新しいユーザ(hogeuser)を作成」

「共有するフォルダ作成(C:\hoge)」→「プロパティ」→「共有タブで共有する、アクセス許可」→「Everyoneを削除、追加クリック、外部アクセスユーザ(hogeuser)を追加、フルコントロールをチェックオン」→「セキュリティタブの追加クリック、外部アクセスユーザ(hogeuser)を追加、フルコントロールをチェックオン」

・WebDAV設定

「コントロールパネル」→「管理ツール」→「インターネット インフォメーション サービス」→
「既定の Web サイトを右クリックして、新規作成→仮想ディレクトリ」→

















「エイリアス、ディレクトリパス、アクセス許可の設定を行う。」→
例:サーバのIPアドレス(192.168.1.2)、エイリアス(hoge)、ディレクトリパス(C:\hogehoge)の場合、
http://192.168.1.2/hoge/C:\hogehogeにアクセスできる仕組み。

「仮想ディレクトリのプロパティ」→「仮想ディレクトリタブで書き込み、ディレクトリの参照をチェックオン」→「ディレクトリ セキュリティタブの匿名...コントロールの編集」→「匿名アクセスをチェックオフ、基本認証チェックオフ、統合Windows認証をチェックオン」

「既定のWebサイトのプロパティ」→「WebサイトタブのIPアドレスをサーバのローカルIPを設定、ホームディレクトリタブでWebページを保存するフォルダを指定できる、また普通は読み取りだけチェック、スクリプトのみが無難」

・ルータ設定
「ルータのNATアドレス変換をLAN側IPアドレスをサーバのローカルIP、プロトコルはTCP、ポート番号は80に設定」→「IPフィルタは外部装置から開始されるTCPセッションを遮断しないようにする」

・Windowsファイアウォール設定
「コントロールパネル」→「Windows ファイアウォール」→「有効に設定」→「例外タブでポート追加」→「名前:Webサーバー、ポート番号:80、TCPを設定する」(スコープでは任意もしくはカスタムで個別で設定されていること)

・IEからWebDAVでアクセス
「クライアント側からIEのファイルメニューの開くをクリック」→「Webフォルダとして開くをチェックオン、http://サーバのローカルIPサーバのグローバルIP/エイリアス」(例:http://192.168.1.2123.456.7.8/hoge/)→「認証画面は作成したユーザ(hogeuser)名とパスワードを入力」(マイネットワーク上に登録されるので、次からそのアイコンをクリックで共有フォルダに接続できる。)
※ルータ内からグローバルIP指定で開こう(http://123.456.7.8/hoge/)としてもダメでした。外部のパソコンからグローバルIP指定で開くことはできます。

これで、たぶん外部からでもLAN内の共有フォルダと同じような扱いができるようになります。
(説明抜けがあるかもしれませんが、自分はできました。)

画像とか入れて、わかりやすくしたかったが、ここまで書くだけで相当時間がかかった。
だれもみないだろうなぁ、こんなのだと。
ブログってたいへん...

次は、一枚のLANカードに複数のIPアドレスを割り当てる方法を書くつもり。

ねむい..