misc.log

日常茶飯事とお仕事と

Oracle SQL Developer1.5.1でACCESSファイルにアクセスする

現在関与しているシステムで、カラム数が500近くも定義されたテーブルがあるため、CSEなどでの閲覧や編集に支障が出ている、ということから、Oracleが出しているSQL Developer1.5.1を試してみた。本来の目的は問題無く達成できたのだが(テーブル設計がアホだという点はおいておいて)、このツールACCESSにも接続できると書いてある。

Connectionsというツリーのルートで右クリック、「New Connection」を選択すると出てくる接続ダイアログで、接続先情報のタブを「ACCESS」に切り替えてから、ファイル名を指定。接続情報自体につける名称を「Connection Name」欄に適当に入力して「Connect」を押すだけで良いみたい。

試してみたところ、以下のエラーが。

NO Read Access to System Tables. Modify Access db
before retrying


システムテーブルへのアクセスができない?無い?。Oracleのフォーラムで調べたところ、「Can't access MS ACCESS」というタイトルですでに質問出ている。回答は

  • Accessが入ってないとだめなんじゃね?(結論から言うとそんなことは無い)。
  • Accessの隠しテーブル類へのアクセス権限が足りないのでは?

この後者が解決への道。Accessを使って対象となるMDBファイルを開き、[ツール]-[オプション]にある「表示」のところで、「システムオブジェクト」にチェックを入れる。これで、Accessの内部テーブル群が見られるようになるので、その状態から、さらに[ツール]-[セキュリティ]-[ユーザー/グループの権限]を選択。ユーザーごとにオブジェクトに対する利用権限設定が行えるようになっている。現状、試しに使ったMDBファイルには単一ユーザー「管理者」しかいないので、そのユーザーを選択した状態で「MSysObjects」を選択し、下段にあるチェック欄の「管理者」をON。データの更新は行っていないので、保存ボタンによるDBの更新はできないが、この時点ですでにMDBファイルの設定は変更されているようだ。
このファイルを、SQL DeveloperのMDBファイル指定欄で指定、Connectを押すと...Accessのテーブル、クエリー、フォーム、マクロ、モジュール、レポートがツリーに表示された。日本語データも問題無く表示している。

これを使えば、Accessが無い状態の開発用PCでもMDBファイルを見られそう。ただし、編集はできないようだ。