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






0 件のコメント: