2009-01-27

FileMaker Pro 9 のアクセス権設定方法(2)

 さて、前回は FileMaker Pro 9 のデータベースのアクセス権設定方法について説明しましたが、今回はログインの認証設定とFileMaker Server 9 のセキュリティ設定について説明していくことにします。

認証方法を外部サーバーにする
1. この操作を行うには、FileMaker Server 9 をインストールしてデータベースを公開しておく必要があります。以下の青で囲った部分のように、クライアント認証には「FileMaker と外部サーバーアカウント」を選択します。

 また、画面下にある接続の保護の「FileMaker Server への接続を保護する」にチェックを付けると、FileMaker Server へのアクセスが SSL で保護されるようになります。

2. FileMaker Pro 9 のメニューより、「ファイル」→「管理」→「アカウントとアクセス権」の順に選択し、表示されるダイアログから、認証方法を変更したいアカウントをダブルクリックして、「アカウントの編集」ダイアログを表示させます。

 ここで[アカウントの認証方法]には「外部サーバー」を指定します。これによって、Active Directory (Mac OS 環境では Apple OpenDirectory) による認証を FileMaker Sever 9 経由で行います。今回の記事では ActiveDirectory 環境での認証方法について説明します。

3. [グループ名には] Active Directory に登録されているアカウントグループを指定します。たとえば、Administrator という Active Directory アカウントを使って FileMaker Server 認証を行いたい場合は、Administrator が所属するアカウントグループを指定します。
 以下の図は、Active Directory のグループ Domain Users が所属するアカウントについて、データ入力権限のみを与えるように設定したものです。

 この場合、Domain Users に所属する Active Directory のどのユーザアカウントでログインを行っても、FileMaker データベース側の操作はデータ入力のみとなります。"OK"ボタンを押してダイアログを終了させます。

4. 一度データベースファイルを閉じ、Domain Users に所属するアカウント名を使ってログインをしてみてください。パスワードは Active Directory のアカウントに設定されているものを使用します。
 データ入力のみが許可されているようになっていれば成功です。

2009-01-26

FileMaker Pro 9 のアクセス権設定方法(1)

FileMaker Pro 9 で開発したデータベースにアクセス権を設定することによって、データベースアクセスのセキュリティを向上させることができます。また、FileMaker Server 9 との併用によって、さらにセキュリティを向上させることができます。

基本的なアクセス権の設定方法
1. データベースを開いてから、FileMaker Pro のメニューより、「ファイル」→「管理」→「アカウントとアクセス権」の順に選択すると、「アカウントとアクセス権の管理」ダイアログが開きます。

 この図は、以前当ブログで紹介させていただいたFileMaker API for PHP を使ったアンケートフォーム作成で使用した Comment.fp7 のアクセス権を表示したものです。
 [ゲスト]、Admin、webuser という 3 つのアカウントが表示されています。そのうち、[ゲスト]および Admin は FileMaker Pro データベース作成時にデフォルトで用意されているアカウントです。
 ここでは新しいアカウント「input」を作成して、アクセス権を設定してみることにします。
 “作成”ボタンを押して、[アカウント名]の欄に input と入力し、[パスワード]に適当なパスワードを入力します。運用にあたっては、パスワードは長めで特定されにくい文字列と数値を混ぜたものを指定します。[アクセス権セット]に「データ入力のみ」を指定します。
 ここまで指定すると、ダイアログは以下の図のようになります。
 
 [アカウントの認証方法]には、次の 2 種類があります。
 「FileMaker」--- FileMaker Pro のデータベースに設定したアカウントを使って認証を行う。
 「外部サーバー」--- Active Directory(Windows ドメイン)や Apple OpenDirectory などのアカウントグループを使って認証を行う。
 外部サーバーによる認証方法については後ほど説明しますが、今はデフォルトの「FileMaker」を指定しておいてください。

“OK” ボタンを押してダイアログを閉じます。

2. 一度ファイルを閉じ、input アカウントでログインします。フィールド内容の編集やレコード作成、削除はできますが、レイアウトの編集やスクリプトの編集などはできません。

独自のアクセス権セットを作成してみる

ここまでが基礎的なアクセス権の設定方法ですが、今度はデフォルトで用意されている 3 つのアクセス権セット([完全アクセス]、[データ入力のみ]、[閲覧のみアクセス])とは別に、独自のアクセス権セットを作成して割り当てる方法について説明します。

1. 先ほどのように、「アカウントとアクセス権の管理」ダイアログを開き、input アカウントをダブルクリックして「アカウントの編集」ダイアログを開きます。ここの[アクセス権セット]の一覧の一番下に表示されている「新規アクセス権セット」を選択します。
 すると、次のようなダイアログが表示されますので、ここにデータベースへのアクセス条件を設定していきます。


2. 「アクセス権セット」には適当な名前を付けます(ここでは「編集用」という名前にします)。
仮にこのような入力条件を考えてみます。

1) レイアウトは照会することができるがデザインの編集はできない。
2) レコードへの入力はできるが、作成と削除はできない。
3) 値一覧は表示できるが、編集はできない。
4) スクリプトは実行できるが、編集はできない。
5) ファイルメーカー側のメニューコマンドは、編集絡みのものだけに限定する。
6) データの持ち出しを許可しない(データのエクスポートを禁止する)。
7) データの印刷を禁止する。
8) FileMaker Server 9 でこのデータベースを公開したときにはアクセスできるようにする。
9) そのほか、input ユーザにとって相応しくないアクセスはすべて禁止する。

これをざっと盛り込むと、設定は次のようになります。上記の条件が盛り込まれていることを画面を見ながら確認してみてください。
 注意: 2) のレコード条件については、作成と削除を禁じるための設定をさらに行う必要があるので追って説明します。とりあえずこの図では「すべてアクセスなし」という表示になっています。


3. さて、ここでレコードの扱いをさらに細かく設定します。2) ではレコード入力は許可するが、作成と削除は禁止するということですので、今「すべてアクセスなし」となっている設定を、条件一覧より「カスタムアクセス権」を選択します。すると「カスタムレコードアクセス権」というダイアログが表示されます。


 Comment というテーブルを選択すると、そのテーブルに対するアクセス条件を設定できるようになります。ここで上記の条件に沿った設定を行うと次の図のようになります。レコードの作成と削除に「なし」が設定されていることに注目してください。


4. “OK”ボタンをクリックしてダイアログを閉じ、この「編集用」アクセス権セットを input アカウントに割り当てて動作を確認してみてください。

2009-01-16

brother 複合機 MFC-820CN の設定方法(送受信環境となるマシンの移行方法)

 brother 複合機 MFC-820CN を通常の Fax, プリンタ、スキャナとして使うことはもちろんのこと、ネットワーク上のコンピュータに接続することによって、受信した FAX を当該コンピュータ上に保存できるため、ペーパーレス化を図ることができます。

 今回は、あるコンピュータに設定されている MFC-820CN ソフトウェア・ドライバ環境を別の環境に移行する方法について説明します。

 MFC-820CN に付属の CD では、今のところ対応 OS が Windows 98/98SE/Me/2000 Professional/Windows XP, Mac OS9.1~9.2/Mac X 10.24 以降とあるので、それ以外の環境に入れようとするとインストールチェックで弾かれてしまうようです。現に Windows Server 2003、Windows Server 2008 に入れようとしたら見事弾かれてしまいました。
 というわけで、今回は Hyper-V のゲストOS となっている Windows Server 2000 に入れることにしました。

 手順は次のとおりです。

1. brother MFC-820CN に Ethernet ケーブルを接続し、LAN に参加させ、接続対象のコンピュータも LAN に参加させておく。
2. 付属の CD-ROM を使ってドライバとユーティリティソフトウェアをすべてインストールする。インストール時の接続オプションとして、「有線LAN接続」を選択してインストールを続行する。
3. すべてうまくインストールできたら、「スタート」→「プログラム」→「brother」→「MFC-820CN」→「リモートセットアップ」→「MFC-820CN」の順に選択。MFC-820CN 本体の現在の設定内容がダウンロードされてくるので、それを参考に設定を修正する。
 特に修正が必要なのは、MFC-820CN 本体に割り振る IP アドレスと、受信した Fax の扱いとなる。
 受信した Fax を印刷せずにファイルとしてコンピュータに保存する場合は、以下のように設定する。



 この後“OK”をクリックすると、設定内容が MFC-820CN にアップロードされる。

4. 「スタート」→「プログラム」→「brother」→「MFC-820CN」→「PC-FAX 受信」→「MFC-820CN LAN」の順に選択し、Fax 受信プログラムをタスクトレイに常駐させる。Fax が受信されるとこのアイコンが緑色から青色に変化し、受信された Fax は Presto! FileManager を使うことによって照会できる。

Presto! FileManager のデータファイルの移行方法
以前の環境の Presto! FileManager のデータ情報を新しい環境に移行するには、My Documents\My PageManager 配下のファイル群を新しい環境の同じ場所にコピーします。

Hyper-VゲストOSからUSB/eSATA対応外部ディスクを使う

 以下のページによると、バーチャルマシンは USB をサポートしないとあります。

次世代仮想化プラットフォーム「Hyper-V」研究
http://www.windows-world.jp/news/-/102390-2.html

Virtual Server 2005 R2以前、バーチャルマシンは非常にレガシーなハードウェアをエミュレートするものであった。エミュレートされるチップセット「Intel 440BX」は1998年の登場で、最大1GBのメモリに対応し、初めてACPI(Advanced Configuration and Power Interface)の電源機能とUSB(Universal Serial Bus)を実装したことで有名だ(バーチャルマシンはUSBをサポートしない)。


確かに今の設定では Hyper-V ゲスト OS 環境では USB が認識されない模様ですが、もっと確実な情報が収集できたところで、こちらの記事に情報を追加していきます。

2010/01/12更新
USB 接続された HDD をパススルーディスクと認識させるのは依然として無理なようですが、その代りに仮想ハードディスクを作成し、それを追加ドライブとして Hyper-V のゲスト OS に認識させることは可能ですので、ここにその方法を記述します。

1. ゲスト OS が起動中の場合は終了させます。外付け HDD はホスト OS からアクセス可能な状態にしておきます。
 Hyper-V マネージャの当該ゲスト OS の設定画面(ここでは Windows Server 2003)を開き、図のように新規の IDE コントローラにハードドライブを追加します。


 追加したハードドライブに仮想ハードディスクを割り当てます。“新規”ボタンを押すと、仮想ハードディスク作成ウィザードが表示されますので、指示に従って外付け HDD に仮想ハードディスク領域を割り当てます。

 “適用”ボタンを押し、変更を反映させます。

2. ゲスト OS を起動します。起動直後は、上記で追加した仮想ハードディスクは認識されない状態ですので、管理ツールから「コンピュータの管理」を起動し、「記憶域」配下の「ディスクの管理」を選択すると、以下のようにウィザードが表示されます。

 このウィザードは、追加された仮想ハードディスクをゲスト OS に認識させるためのディスク変換を行うためのものですので、指示に従ってディスク変換を行います。

3. ディスク変換直後はボリュームにドライブ名が付いていない状態ですので、変換したディスクを右クリックして、ボリュームドライブの割り当てとディスクフォーマットを行います。
 ドライブ割り当てとフォーマットが終了すると、以下のようになります。


 エクスプローラーで確認すると、この仮想ハードディスクが E: ドライブとして認識されていることがわかります。


 eSATA 接続された HDD についても、同様の方法で仮想ハードディスクを追加ドライブとして設定することができます。

(2010/04/27追記)
 同一の HDD に複数の vhd を事前に作成しておき、複数のゲスト OS に割り当てて認識させることも可能です。

2009-01-15

データベースの正規化

データベースの正規化、テーブル設計、ということはデータベース・アプリを開発したことがある者なら、一度はやったことがある筈。 まして、これを職業にしているならなおさら。

しかしいざ「正規化のやりかたを説明してみて」と問われると、ほとんどの開発者は困惑してしまうと思う。 文献や参考サイトをあたってみても、帯に短し襷に長し、である。
Wikipediaの正規化のページを見てると、

  • 第2正規形---あるリレーションが、第1正規形で、かつ、すべての非キー属性が、すべての候補キーに対して完全従属するとき、第2正規形 (second normal form; 2NF) であるという。つまり、第2正規形では、候補キーの一部に関数従属する非キー属性があってはならない。
とか書いてある。 これって日本語?

小社ではFileMaker というデータベース開発アプリケーションの講習を、主として初心者向けに時たま行っているが、正規化の話は避け、「同じ性質のデータをまとめて一つのテーブルにいれ、なるべく重複登録が起きないようにします」みたいに説明してきた。 「第一正規化とは…」とかやりだすと、受講生もこんがらがるし、こちらもこんがらがる。  しかし、「こんなことではいけない!」と改心し、モチベーションの高い受講者向けに正規化をできる限り噛み砕いて説明するため資料を作成してみた。 前述のWikipediaのような厳格な正規化の定義とはほど遠いが、実務上、なにかしかの役には立つのではなかろうか。
興味のある方→ こちら(PDF)こちら(Word)

以上

追記
上記の「同じ性質のデータをまとめて一つのテーブルにいれ、なるべく重複登録が起きないように」テーブルは設計する、というのはいい得て妙、だと思うんですが。


土屋

2009-01-13

セカンダリ DNS サーバを設定する

 弊社では内向き(LAN内からの参照用)と外向き(WANからの参照用)の二台の DNS サーバを運用していますが、今回外向き用 DNS サーバに対するセカンダリサーバを設置してみることにしました。

 今回使用したのは Windows Server 2008 の DNS サービスです。既存の DNS サーバは どちらもWindows Server 2000 Advanced で運用しています。

 今回成功したセカンダリ DNS サーバの設定方法は次のとおりです。
 
1. サーバーマネージャの役割から DNS サービスを追加します。
2. プライマリ DNS サーバ(外向き用)の localhost.dns および 0.0.127.in-addr.arpa.dns 以外のゾーンファイルを新しいサーバ側のゾーンファイルディレクトリにコピーします。
(ゾーンファイルは Windows Server 2000 は \WinNT\System32\dns 配下、Windows Server 2008 は /Windows/System32/dns 配下にあります。)
3. セカンダリ DNS サーバ側のゾーン追加で localhost をプライマリとして一旦登録します。
前方参照ゾーンを右クリックすると表示されるサブメニューから、「新しいゾーン...」を選択すると「新しいゾーンウィザード」が表示されますので、ここより[プライマリゾーン]を選択します。



 “次へ”をクリックして、「localhost」と入力します。これはセカンダリ DNS サーバ自身の参照を指します。



localhost のゾーンファイルを自動作成します。


“次へ”をクリックして、localhost ゾーン設定を一旦終了します。

4. 現在は localhost ゾーンはプライマリ DNS として動作するようになっているため、これをセカンダリ DNS に変更します。
localhost ゾーンを右クリックしてプロパティを開き、「全般タブ」のプライマリゾーンを以下のようにセカンダリに変更します。



次に、図のように参照先のマスタサーバ(プライマリDNSサーバ)のIP アドレスを指定します。

4. 残りのゾーンについても、一旦プライマリとして登録するという要領は localhost と同じですが、ゾーンファイルはすでにプライマリ DNS からコピーしてきたものがあるので、それを採用します。



この後にlocalhost ゾーンと同じように、セカンダリゾーンへの設定変更を行います。これと同じ操作を、前方参照ゾーン、逆引きゾーンの両方に対して行います。

ここまでがセカンダリ DNS のゾーン設定となります。

5. 次に、プライマリ DNS のゾーン転送設定を行います。これは、プライマリ DNS 側で DNS レコードの更新があった場合に、セカンダリ DNS 側にも通知を行ってゾーンの同期を行うためのものです。

 プライマリ DNS 側(今回は Windows Server 2000 Advanced)のゾーンを右クリックしてプロパティを開き、「ゾーンの転送」タブより、ゾーン転送を許可するサーバとして、今回新設した DNS サーバの IP アドレスを登録します。



 これと同じ操作を、前方参照ゾーン、逆引きゾーンの両方に対して行います。

6. 最後にゾーン転送の確認を行います。
新設したセカンダリ DNS サーバ(Windows Server 2008)側でゾーンの右クリックで表示されるサブメニューより、「マスタから転送」を選択すると、プライマリDNS からゾーン内容が転送されます。ゾーン転送が成功したかどうかは、イベントマネージャで確認できます。




補足:
メールサーバーを立てている場合は、逆引き設定をお忘れなく。これを忘れてしまうと、メール送信先のサーバで逆引きチェックが設定されている場合、送信したメールが弾かれてしまい、届かなくなってしまいます。

2009-01-07

『FlexMy売管』を作るぞ! (3) --- FileMaker から MySQLに接続できない!?


【FileMaker/MySQL関連の追加情報】
『売上猫くん on MySQL』開発日記の記事一覧
FileMaker/MySQL関連の記事が増えてきたので、目次にしました。(2012/06/25追記)

AccessとFileMakerの実行速度比較テスト記事とその動画 (2011/11/17追記)

FileMaker Pro 10/11、MySQL 5.1、ODBC 5.1.6~によるフリーウェア『売上猫くん on MySQL 5.0β』をリリースしました。ダウンロードは→こちら。 (2011/01/27追記)



前回、MySQL でデータベースとテーブルを一つ作成したので、FileMaker から接続できるか、試してみることにする。

1. 事前準備
FileMaker は MySQL には ODBC 経由で接続するので、まず、MySQLのODBCドライバ 3.51をインストール、さらにシステムDSNとして登録した。 接続テストを実行すると、「Success; connection was made!」と表示されるので、ここまでは問題ない。

2. FileMaker Pro 9 で接続できない!?いざFileMaker Pro 9を起動してテスト用ファイルを作成。[ファイル]メニュー→[管理]→[外部データソース...]を選択し、上記で作成したDSNを指定。

さらに、[ファイル]メニュー→[管理]→[データベース...]→[リレーションシップ]タグを選択し、ウィンドウ左下にある“+”ボタンをクリックしてMySQLのテーブルを選択、“OK”すると、

「必要なテーブルが見つからないため、この操作は実行できません。」

とメッセージが表示されてしまう。 そんなこと言っても、FileMaker はテーブルとして認識してるやん?
この後、いろいろやってみたが、どうも FileMaker Pro 9 は、MySQLのテーブル、コラムに日本語が使用されていると、そのテーブルは使用できないらしい。 SQL-Server は日本語使っても全然問題ないのに…
試しに、日本語を英語に変更してみると、ちゃんと使用できる。

ただ、今回はSQL-Server ベースの『FlexSql売管』をできる限り手間をかけずMySQL に移植する(テーブルさえ全部作ってDSNを入れ替えれば、『FlexMy売管』があっという間にできるだろう)ということを前提としていたので、いまさらコラム名(フィールド名)を変更する気力は、、、、無い、 全然。
ということで、FileMaker Pro 10 のリリースをまって、再度試してみる(かも)。

【メモ】
  • 実は、MySQLコマンドでもデータベース、テーブル、コラムに日本語を使用していると、文字化けする。My.iniをいじったり、コマンドプロンプトの環境をUTF8にしたりしてみたが、問題は解消せず。ただ、MySQL Administrator だけは、データベース構造に日本語を使用しても問題なく認識してくれる。
  • ODBC5.1を使用してDSNを作成しても駄目。
  • FileMaker Pro 10 プレリリース版を使用してもやっぱり駄目。
新情報
FileMaker社は公式にサポートを言っていないが、MySQL ODBC 5.1 だと、日本語OK。 昨年の3月位から某案件で使用し始め、今のところ大きなトラブルは無し。 この某案件については、時間があれば書きたいな、っとこちら
(2010/2/5追記)
(2010/2/19追記修正)
(2010/3/25ODBC5.1の部分を打ち消す)