• 締切済み

ACCESSで利用者制限

利用環境:サーバー WindowsXPPro クライアント WindowsXP,98,ME アプリケーション ASP(VBScript) Access初心者です。 1.アクセスのDBファイルをサーバーに置きます。 2.通常の利用者はWebブラウザから自作のアプリケーションでAccessにアクセスします。 3.サーバーは全員が自由に通常使えます。 以上の条件で特定の人だけがAccessのDBファイルに直接 さわれるように制限するにはどうしたらいいのでしょうか?OSでの利用者制限は考えてません。 あくまで直接AccessのDBファイルを操作できるひとを 制限したい場合です。

みんなの回答

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

当方Access2000ですが、ほとんど操作性は同じだと思いますので…。 DBがmdb拡張子のファイルだと仮定して話をすすめます。 通常は、mdbファイルにパスワードをかけるには、目的のmdbファイルを排他モードで開いて「ツール」「セキュリティ」「データベースパスワードの設定」で設定します。 が、この方法だと他のパソコンからアクセスできなくなる場合がありますので、もしそれを回避したい場合は別の手でやります。 別の手とは、VBAで簡易的なセキュリティをかける方法です。DAOなどを使えばもちろんデータベース内のレコードにアクセスできてしまいますが、「一般ユーザーはDAOやADOなんか知らんから大丈夫!」とか、「ユーザーのアクセス権別にセキュリティ設定をするほどでもない、逆にそうすると管理がたいへん」という場合に有効です。 具体的にはVBAにてmdbのAllowBypassKeyプロパティを設定します。 設定のおおまかな流れとしては以下のような感じです。 (1)パスワード入力用のフォーム等を作る (2)「起動時の設定」で、(1)で作ったフォームが一番最初に開くように設定する。 (3)AllowBypassKeyプロパティをFalseに設定する。 パスワードを忘れると二度とmdbが開けなくなりますので、必ずバックアップを取ってから試してください。 では以降で具体方法を説明します。 ●≪パスワード入力フォームの作成方法≫ データ用mdb(テーブルのみのmdb)に「フォーム1」というフォームをつくり、そのなかに「txtbox1」という半角英数名のテキストボックスを作ります。(パスワードは「123456」だとします。 ) で、「txtbox1」の更新後処理に以下のように記述します。コピペでOKです。 If Me!txtbox1 = "123456" Then DoCmd.Close acForm, "フォーム1", acSaveYes Else Quit End If これでパスワード「123456」を入力しないかぎり、データ用mdbは必ず閉じてしまいます。このフォームをAutoExecマクロか「起動時の設定」メニューで起動時に最初に開くようにします。 パスワード入力時に「******」という表示にしたかったら、テキストボックスの定型入力プロパティに「Password」と入力します。 ただ、ここまでやっただけでは、Shiftキーを押しながらmdbを開くと、パスワード入力用フォームが起動しないので、パスワードロック無効になってしまいますので、AllowBypassKeyプロパティを使って、Shiftキーを押しながらのmdbオープンをできなくします。 ●≪Shiftキーを押しながらのmdbオープンをできなくする方法≫ データベースウィンドウの「モジュール」をクリックして、適当なモジュールを新規作成します。名前は何でもいいです。そして以下のコードをコピペして、Sub SetBypassProperty()のプロシージャを実行します。実行するには、コピペしたあと、2行目、3行目の、 Const DB_Boolean As Long = 1 ChangeProperty "AllowBypassKey", DB_Boolean, False と書いてあるところのどこかにカーソルを置いて、F5キーを押します。これは、1度実行すればOKです。 Sub SetBypassProperty() Const DB_Boolean As Long = 1 ChangeProperty "AllowBypassKey", DB_Boolean, False End Sub Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' プロパティが見つかりません。 Set prp = dbs.CreateProperty(strPropName, _ varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ' 認識できないエラー。 ChangeProperty = False Resume Change_Bye End If End Function 実行したらmdbをいったん閉じて、Shiftキーを押しながらmdbを開いてみて、ちゃんとパスワード用のフォームが開くか確認します。ひらかなかったら最初からやり直してみてください。 くれぐれもパスワードを忘れないように…(^^) 解除するには、上記コードのChangeProperty "AllowBypassKey", DB_Boolean, False の行のFalseをTrueに書き換えて再度実行します。 詳しくは、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=497940 なども見てみてください。 ではでは~

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=497940

関連するQ&A

  • クライアントPCからのアクセス制限

    現在oracle10gでDBを構築し、クライアントサーバでアプリケーションシステムを稼働しています アプリケーションはログインするユーザによってDBへのアクセス範囲を限定できますが SID,ユーザID、パスワードを入れてアクセスするオラクルツールではアクセス範囲を限定できません これに制限をかけることは可能でしょうか(たとえばPC側のプロセスを限定するとか) また、このような制限を可能にする良い案があれば御教示ください。

  • イントラ内のWEBにアクセス制限はどのように???

    イントラ内で公開しているWEBページにアクセス権を付与して限定した人だけに公開は可能でしょうか? (ファイルサーバのような制限はつけれないですよね?) クライアントもサーバも同一ドメイン内という環境です。(全部Win系) そのクライアントでも限られた人のみに見せるページを作りたいと思うのですが、アクセス制限を掛けることは可能でしょうか?

    • ベストアンサー
    • HTML
  • ACCESSランタイムでLinuxによるファイルサーバ上のACCESSのアプリケーションを操作できるか?

    ACCESSで開発したDBアプリケーションをWindows ServerやXPではなく、Linuxでファイル共有サーバを作成してそこに格納した場合、クライアント側からランタイムでそのACCESSアプリケーションを動かすことは可能でしょうか? 特に実際にやったことがあるという方、ご回答願います。

  • Windows2003 LAN/VPN フォルダアクセス制限について

    windows2003のアクセス制限についての質問です。 概要を説明します。 Server OS:Windows 2003 server R2 ワークグループ名:abc サーバーユーザーID:server サーバー内共有フォルダ:kyoyu001 クライアントユーザID:user LAN環境でユーザID[user]が共有フォルダ[kyoyu001]にアクセスする際の制限内容がフルコントロールで、userがVPN経由でserverにアクセスした際にkyouyu001にアクセスできなくする方法はどうしたらいいのでしょうか? VPNの構成はASP型なので、社内にはVPNルーターは存在せず、社内サーバーおよびVPNクライアント共に専用のソフトウェアをインストールしてASPのサーバーにアクセス認証してVPNを実現といった感じです。 ワークグループ構成ではなくAD構成にすると細かいアクセス制限ができそうなのですが、クライアントPCにXP Homeも含まれるため懸念しています。 フォルダから見てIPアドレス等による制限を掛けれるとベストかなと思うのですが、手段が見つかりません・・・。 例)192.168.1.xx はアクセス可能   10.150.10.xx はアクセス不可 ↑といった感じですが・・・。 そんなツールあるんでしょうか? 聞いて回ったり、探し回ったりしていますが、 解決策がまだ見つかりません。 いい案あったら教えてください。

  • やってはいけないアクセス制限

    バッファローのlinkstationのアクセス制限について質問します。 サーバー:windows 2003 server(activeDirectoryにてアクセス制御)にlinkstation LS-WX1.0TL/R1Jを接続して2年間問題なく運用していました。  ところが最近EMモードがでたのでファームアップデートを最新にしたところ、クライアント側(xp)からアクセスできないフォルダがでました。  いろいろ調べたところ、   (1) linkstationではwindows標準のアクセス制限はしてはいけない(してたー知らなかった)   (2) linkstationではroot以外のサブフォルダにアクセス制限をかけてはいけない(してたわー知らなかった)  ということがわかりました。上記の2つに関わるいけないことをしていたということです。 では、クライアント側でアクセス制限をいじればいいじゃないかとおもいます。しかし、クライアント側からフォルダのプロパティをひらくと、いつもあるセキュリティタブが見れません。   バッファローに問い合わせたところ、いくつか似たような事象について問い合わせはあるが、有効な解決法がないとの回答。  googleさんにきいても解答がみつけられませんでした。 このような事象にかんして解決をしたという記事や方法をご存じの方いらっしゃらないでしょうか?  

  • 画像データのアップデート

    動作環境:サーバー:WindowsXPpro,IIS クライアント:WindowsXPHome 開発:ASP,VBScript(JScript) 超初心者です。 画像データをブラウザの画面から選んで、サーバーにアップする処理をしたいのですがどうすればいいのでしょうか?いいサンプルがあれが教えてください。

  • 直接アクセスさせたくない時の構文について

    VBScriptを使用しているのですが、特定のASPファイルのページをリンクボタンでたどってのみアクセスさせたいと考えています。該当ページへ直接アクセスするとエラー表示させる構文(if文?)があれば教えていただけますか?

  • IBM UDB2をMS-ACCESS97で利用するには?

    IBMのUDB2をDBMSとしたC/Sシステムを構築しようとしていますが、クライアントPCのACCESS97から利用する場合、ODBC接続すればよいと思うのですが、その場合、クライアントPCにDB2のクライアントソフトのようなものが必要になるのでしょうか? SQL-SERVERの場合、ODBCの設定のみで特別なソフトは必要無いと思いますが、DB2の場合はどうなのでしょうか?

  • プロキシーサーバーによるアクセスを制限するには・・・?

    ホームページを運営しているのですが、 プロキシサーバーからアクセスして、 サイトを荒らすという人が増えてきました。 プロキシーサーバーによるアクセスを制限する方法はありますでしょうか? プロキシーサーバーは数多くあるようで、一つ一つ制限していても追いつかない状態のコンテンツがあります。 学校などはプロキシサーバーでアクセスしていることがあると、聞いたことがあるので、利用者に聞いてみたところ、荒らしていない方は、全てご自宅からアクセスしているので、学校などからアクセスしてはいません。 よろしくお願いします。

  • ファイルへのアクセス制限をかけたいのですが・・・

    どのカテゴリーへ質問すればいいのか分からなかったため、OSのカテゴリーへ質問させていただいております。どうぞ、宜しくお願い致します。 現在「windows2000 Pro」のOSが入ったPCを利用しています。ファイル(フォルダ)の共有をしており、現状では誰でもアクセスできる状況にあります。 そこで、今回管理者側でアクセスする人を制限したいと考えております。制限の方法としては、アクセスした際に、Password等を聞かれれば可能なのではないかと思っております。 理想的には、「利用者がアクセスをした際に、ID/Passwordを聞かれ、そのID等を入力した人がアクセスできる。尚、ID/Passは管理者側が用意する。」といった形になればベストかと思っております。 本来であれば、W2K serverを用意できれば可能だとは思うのですが、諸々の事情で難しい状況です。 フリーソフトなどを用いてアクセス制限をかけられるのでしたら、そのソフトなども教えていただければ大変ありがたく思います。 以上、文面的に分かりにくいところが多々あるかと思いますが、ご教授いただければと思います。 宜しくお願い致します。

専門家に質問してみよう