• ベストアンサー

コマンドラインオプションにパスワードを指定したい

アクセス97です。 アクセス起動時に指定するコマンドラインオプションに データベースパスワードを指定したいのですが、 できません。 グループファイルによるユーザー名とパスワードの指定は できますが、データベース自体のパスワードの指定と いうのはでいないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.6

Ac2000の場合ですので97で使えるかわかりませんが、一応ご参考までに… ということで、以下のような方法はどうでしょうか? (ただし、新しいクエリやレポート等は一般ユーザーは勝手に 作成できなくなるかもしれません…。) ******************************* まず、システムをデータ専用のmdbとプログラム専用のmdbに分けます。(分けないと無理かと思います。) そして以下のようにします。 ●data.mdb ・テーブルとリレーション設定のみを作成 ・排他モードにてデータベースパスワードを設定 ●program.mdb ・data.mdbへのリンクテーブルとフォーム、クエリ、レポート等を作成 ・起動時にデータベースウィンドウを表示しない設定にする ・AllowBypassKey にて、パスワードを知らない限り ShiftキーOPENができないようにする ・クエリやレポート、フォーム等のオープンは オリジナルメニューなどを作って実行させる ・ツールバーの内容を変更できない設定にする ******************************* 以上のような状態にすればいいと思うんですが、このとき、 program.mdb内の既存のリンクテーブルは全て一旦消して 再度リンクテーブルを作り直す必要があります。 作り直すときは、あらかじめ先にdata.mdbにデータベース パスワードを設定しておきます。 その後program.mdb内の既存のリンクテーブルを全て消して 再作成するのですが、そのときにパスワードを求められます。 パスワードを入力してリンクテーブルを再作成します。 以上のようにして全てのリンクテーブルを作り直すと program.mdbにて、リンクテーブル作成やテーブルの インポートをする時にいつもパスワードを求められます。 パスワードを入力するとはじめて、リンクテーブルの作成や テーブルのインポートが可能となります。 パスワードを入力して作成したリンクテーブルでのみ、 data.mdb内のテーブルデータにアクセスできます。 program.mdbでは、そのリンクテーブルをもとにフォームを作成し、 起動時にデータベースウィンドウを表示しないようにすれば 目的のことが一応可能になるかと思います。 (コマンドラインを使う方法はわからないです。すみません。) 逆から言えば、data.mdbのパスワードを知らない限り、 program.mdbの中に余計なリンクテーブル作成やテーブルインポートは 一切できなくなります。 DAOなどでもパスワードを指定しない限りdata.mdb内のテーブルに アクセスできません。 もちろん2つ目の新しいprogram.mdbやを作ってもアクセスできませんし 他の既存のmdbからもアクセスできません。 また、こちらからもDAOなどを使っても、パスワードを知らない限り アクセスできません。 もし仮に、program.mdbのほかにprogram_second.mdbというファイルが 作ってあってそこにもdata.mdbのリンクテーブルが作ってあった場合でも、 そのリンクテーブルはパスワードなしに開けません。 (Ac2000だとこういう感じなんですが97では違うのでしょうか…?) ただ、この方法だと、新規のクエリなどが作成できないかもしれません。 (これはprogram.mdbだけですが。あたらしいprogram.mdbや他の既存mdbでは data.mdb以外のリンクテーブルをもとにしたクエリなら作れます。) なお、どうしても追加のクエリ等も作成させたいなら、 (これもAc2000の場合で恐縮ですが、)ダミーのクエリやレポートを いくつか作っておいて、それをオリジナルメニューで 表示できるようにしておき、必要な時に内容を変える…というかたちに するとできるかもしれません。 でも、テーブルをいじられたくないのにクエリを作っても良くする というのはまずい気もするので、一般ユーザーには勝手に 新規クエリも作らせない方がいいとは思うのですが(^^)。 Ac2000では、メニューバーに特定のフォームの起動や特定のクエリの オープンができるようにするためには 「表示」「ツールバー」「ユーザー設定」で、コマンドタブの 「全てのフォーム」「全てのクエリ」などで、オープンさせたい クエリ名をメニューバーにドラッグさせます。 (ヘルプメニューの横やオリジナルメニューバーなど) 階層型の新規メニューを作りたい場合は同じくコマンドタブの 「新しいメニュー」の「新しいメニュー」をドラッグします。 その中にさらに「新しいメニュー」を追加し、その中にクエリや フォームの名前をドラッグします。 オリジナルメニューバーの作り方は以下です。 ・「表示」「ツールバー」「ユーザー設定」で、ツールバータブを開く ・「新規作成」で、適当に名前を付けてメニューバーを作成 (この時点ではまだメニューバーではなくツールバーになっているようです) ・新しく作ったメニューバー名が青色反転選択された状態で プロパティボタンを押して、「ツールバープロパティ」を開く ・「種類」をツールバーからメニューバーに変更…(A) ・「閉じる」「閉じる」 ・小さなメニューバーが出来ていると思うので、既存のメニューバー の下などにドラッグ ・そこへ必要なクエリやフォームのメニューを追加する ・このメニューバーは「起動時の設定」で起動時のオリジナルメニューとして 既存のメニューバーとともに選択可能になります。 ※ただし、前述の(A)の設定をしないと、選択リストに表示されてきません。 いつもAc2000のケースで申し訳ないのですが、もしご参考になれば…。 また、もし全く流用できない場合はごめんなさい。

onakagoo
質問者

補足

すばらしい♪ 解決しましたっ! 分割もトライしてみたのですが、データの方にだけパスワード設定できるのは盲点でした。 当然、program.mdbの方でもパスワードを聞かれてしまうと 思い込んでいました。 起動時にデータベースウィンドウを表示しないようにする ことは既に行っております。 メニューなども表示できないようにプロテクトしています。 DBのメインメニューの中にこれらの規制を解除するボタンをプロシージャー内にパスワードを記述して設けてあります。 MDEにしておりますので、パスワードは解読できません。 ありがとうございました。 また、詳しく解説していただきありがとうございました。 本当に助かりました。 また、次回困ったときにはよろしくお願い致します。

その他の回答 (5)

  • cse_ri2
  • ベストアンサー率25% (830/3287)
回答No.5

要求する内容が、アクセスの機能を超えてしまってますね。 そこまで厳密にセキュリティ管理をするのであれば、 早めにMS-SQLServerかOracleに移行すべきでしょう。 しょせんAccessは個人ユースのソフトなんです。 あまり高機能を求めても、もともと出来ないのですから 仕方がありません。

onakagoo
質問者

補足

う~ん・・・ おっしゃる通りでございまする。 でも・・・サミシイ

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.4

いやそこまでご理解されているなら打つ手は殆どないですね。 ADOやDAOでデータ側のDBに接続して処理させる位なら可能でしょう。(参考URLを参照のこと) ただワークグループでの管理の時に「管理者」が居ると思いますが、このユーザを削除ないしこのユーザに権限を与えないようにすれば、ワークグループの管理でもある程度可能と思われます。どちらにしろコマンドラインでの指定は不味いでしょうね。 googleで「Access データベース パスワード 開く」で検索すると参考になるかも知れません。

参考URL:
http://homepage2.nifty.com/inform/vbdb/ado_lockeddb.htm
onakagoo
質問者

補足

う~ん・・・ なるほど。 でも、困った。どうしよ~

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.3

はじめまして。 ご質問の主旨からは、外れるかもしれませんが。一案としてご検討いただければ幸いです。 Windows2000以上のOSであれば、ファイルのプロパティに「セキュリティ」があり、ユーザーの権限を制限できます。特定のユーザーのみ利用可能となります。他のユーザーからはファイルを見ることさえ出来なくすることも出来ます。

onakagoo
質問者

補足

残念ですが・・・ 特定のユーザーは多数おります。 そのユーザーからテーブルを保護したいのです。 したがって、基本的に特定のすべてのユーザーに対して DBに対するアクセス権限は与えておかなければいけません。 フォームからアクセスすることは全ユーザーに許可し、 直接テーブルにアクセスすることは禁止したいのです。 何か他の手はあるでしょうか? よろしくお願いします。

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

ヘルプはご覧になられているようなので分かるかと思いますが、指定方法は明記されていません。(隠しコマンドがあるかも知れませんが・・・) なぜ、データベースにパスワードを指定するのか? また、パスワードをコマンドラインにつけてしまえば結局誰でも見れてしまうがそう言う意味で必要性が分からない。 つける理由がわかれば代替案もご提案できるかも知れません。

onakagoo
質問者

補足

おっしゃる通りです。 ご説明いたします。 テーブルにフォーム以外から直接アクセスできないようにしたいのです。 テーブルを直接見れると、必要以上の生データを一括して取り扱えてしまうので、セキュリティー上様々な問題が発生します。 DBはMDEにしたり、ツールメニューが使えないように ChangeProperty "AllowBypassKey", dbBoolean, False など様々な規制をしたりして、テーブルは一切見れないようにしてあるのですが、 他のDBからのインポートやテーブルのリンクはできてしまい、全部見れてしまいます。 そこで、他のDBからはパスワードで保護しようと考えました。 このDBを起動する時には、別のDBからコマンドラインオプションとしてパスワードを指定して起動できればいいな~と思ったわけです。 もちろん、起動をかける別のDBはMDEにしておきパスワードを見れなくしておきます。 グループファイルでユーザー管理も考えたのですが、 ユーザーが新しいグループファイルを勝手に作成して、全ての権限を与えDBを起動してしまえば一巻の終わり!???のようが気がします。 何かいい手はあるでしょうか? よろしくお願いします。

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

パスワードはコマンドラインでないといけませんか? アクセスを起動して ツール→セキュリティ→データベースパスワードの設定 で設定出来ますが お気に召したら幸いです

onakagoo
質問者

補足

う~ん・・・私の説明が不明瞭で申し訳ないです。 データベースパスワードの設定の方法ではないです。 (ちなみに、排他モードで立ち上げないとパスワードは設定できません) 設定されたデータベースパスワードをスタートアップの コマンドラインオプションで指定して立ち上げたいのです。 これで解りましたでしょうか? よろしくお願いします。

関連するQ&A

  • コマンドラインについて

    アクセスのコマンドラインで、最適化をしようと思います。ショートカットを作成し、/compact で最適化元データベース、最適化先データベースを指定し、実行すると、確かにデータベースは最適化されましたが、それと同時に、というか、最適化実行後にそのままデータベースを起動されるには、どうしたらいいのでしょうか? ヘルプの/compact にも、「最適化をし、アクセスを終了します」とあります。これを終了しないでデータベースを使用したいのですが… ユーザーにとっては2度手間ですよね。いい方法を教えてください。 それと、ついでに、バックアップも同時に行いたいと思いますが・・・コマンドラインのようにできますか?よろしくお願いします。Access97を使用しています。

  • wmpのコマンドラインオプション

    ウィンドウズメディアプレイヤー11もしくは10のコマンドラインオプションがわかりません。 起動したときに、ライブラリを同時に開きたいのですがうまくいきません。そのほか最小化して起動とかもできません。 プレイリストと音楽ファイルを指定することはできました。

  • コマンドラインでの指定について

    コマンドラインから ie を実行する場合、パス\iexplore.exe で起動します。 これにオプションとか付けて、ie のメニューバーの指定はできるのでしょうか? 「ie が開いたら、自動的に ツール→インターネットオプション の画面が表示される」 と言うイメージです。 オプションを用いる場合、「/」「-」 とかを先頭に付けて行う場合がありますが、 メニューバーの指定は可能なのでしょうか? ご教授願います。

  • コマンドラインってなんですか?

    vbaの事を調べていると、ちらほら「コマンドライン」と言う言葉を見かけますが、 意味がよくわかりません。 コマンドプロンプトならわかります(笑) ググってみたら 「コマンドラインとはプログラムを起動させるときに指定するオプションのようなものです」 とヒットしたのですが、要は引数みたいな感じでしょうか?

  • アクセス マクロ コマンドラインって?

    ヘルプを見てもよくわからないので教えてください。 アクセス2003のマクロの機能で 「アプリケーションの実行」を行いたいのですが コマンドラインには何を入れればいいでしょうか? テストとして デスクトップにあるエクセルファイルのパス C:\Documents and Settings\ユーザー名\デスクトップ\test.xls をマクロのデザインのコマンドラインのところに入れて、マクロ1を保存し ダブルクリックして開いてみたら --------------------------------------------------------- “RunApp/アプリケーションの実行”アクションを使ってアプリケーションを起動 アプリケーションのパスが正しく制定されていないか、 アプリケーションのコンポーネントが不足しています。 Windowsエクスプローラーまたはファイルマネージャで アプリケーションのパスを確認してください。 --------------------------------------------------------- というメッセージが表示されてしまいました。 C:\Documents and Settings\ユーザー名\デスクトップ\test.xls を “C:\Documents and Settings\ユーザー名\デスクトップ\test.xls” にしても同じです。 ヘルプを見ると >アプリケーションの起動に使用するコマンド ラインを指定します。 パスの指定や、アプリケーションを特定のモードで実行するスイッチなどのパラ マクロ ウィンドウの [アクションの引数] セクションの [Command Line/コマン コマンド ラインを入力します。 この引数は、省略できません。 と書いてあるのですが 「パスの指定」の指定が上記で出来てることにはならないのでしょうか?

  • [訂正]バッチファイル内でのリモートマシンのユーザ名とパスワードの指定方法

    宜しくお願いします。 対象OS:Windows2000 コマンドで、systeminfo というものがあると 思います。このコマンドではオプションで リモート接続するマシンのユーザ名とパスワードを 指定するオプションがあると思います。 では、このようなオプションがない他のコマンドの場合は どのようにリモート接続するマシンのユーザ名と パスワードを指定すれば良いのでしょうか。 どうぞ宜しくお願い致します。

  • パスワード保護されたExcelファイルをコマンドラインから開くには

    読取りパスワードの設定されたExcelファイルをコマンドラインから開く方法を教えてください。 "ファイル名.xls"だとパスワード入力のダイアログが表示されるので、それを表示させずに一気に開きたいのですが無理でしょうか? コマンドラインにパスワードを含めたパラメータ何かを付けることでできないでしょうか? よろしくお願いします。

  • Symeventインストール時のコマンドラインオプションについて

    Win98でNAV2004を使っています。 Symeventの更新を行おうと、SymantecサポートページよりSevinst.exeをDLLしてインストールしましたが、PC起動時に毎回Symntec Symevent Installerという画面とメッセージが出るようになってしまいました。 文書番号20020312150252943に従い、コマンドオプションでファイル名を指定して実行から/qを指定してサイレントで再インストールしようとしましたが、「ファイルが見つかりません。パスおよびファイル名が正しいか、必要なライブラリがすべて利用可能かどうか確認してください」というメッセージが出て、インストールすることができません。 コマンドオプションで、うまくサイレントのインストールする方法はありますか? よろしくお願いします。 (ちなみに一度、文書番号20021025100718943に従い、Symeventのアンインストールしてみましたが、再起動した後PCが起動しなくなり大変な思いをしました。 その時もこちらに質問し、答えていただいた回答を参考にレジストリの再構築を行ってセーフモードでゴミ箱の中からファイルを元に戻したら、ようやく起動できるようになりました。 回答をくださった方々、ありがとうございました。)

  • コマンドラインから開きたい

    フォルダオプションをコマンドラインから入力して、直接開きたいのですが、可能でしょうか?そのときのコマンドはどう指定すればよいでしょうか?お願い致します。

  • XP起動時、ログインのパスワードを入力させない

    PCのユーザにパスワードを設定するが、 PCの起動時には、パスワードの入力画面を表示させないようにしたいのですが、やり方をわすれてしまいました。 スタート-ファイル名を指定して実行で、 『user control2』みたいなコマンドを入力するのですが、 このコマンドを忘れてしまいました。教えてください。