2009-05-22 2 views
0

私はMicrosoft Dynamics GPで問題が発生しており、これが原因であるかどうかを調べるために調査を行っていますが、これはAccess to SQL Serverの問題である可能性があります。 GPはSQL Serverにデータを格納し、MS Accessはテーブルデータにアクセスするために使用されています。いくつかのデータが運用データベースに存在しないように見えます。残念ながら、Accessで何が行われているのか分かりません。なぜなら、それは私には公開されていないからです。簡単な解決策は、Accessを使用してデータが失われているかどうかを確認することを中止するように指示することですが、これを示唆する前に文書化された問題を知りたいと思います。私が知っておくべきであるSQL ServerデータベースへのMS Accessの接続に問題はありますか?

何が起きているのかを推測するために、SQL Serverとバックエンドとして接続しているときにAccessは何をしますか?それはテーブルをロックしますか?データが失われたり削除されたりする原因は何ですか? Accessが原因の場合は、それを解決するためにどのような手順を実行する必要がありますか?

+0

マイクロソフトサポートの仕事のように聞こえます;-) – lothar

答えて

3

Accessでデータを変更または削除する必要がありますか?

もしそうでなければ、読取り専用アクセスを許可するアクセス用のユーザーIDを設定することを考えましたか?

いずれの場合でも、SQL Serverのベストプラクティスは、ユーザーアカウントがビジネス要件を満たすために必要な最小限のアクセス権を持つことを保証することです。誰もに空白のパスワードをsaアカウントに与えてはいけません。

EDIT:SQL Server Management Studioのようなアクセスの

考える、つまり1は、事実上無制限の方法でデータベースを照会し、変更するために使用できるインタラクティブなツールは、あなたのアカウントはあなたが行うことができるように権限を持って提供しましたそれ。テーブルをプルアップできるインタラクティブな環境なので、行を削除することは、その行をクリックしてdeleteキーを押すことと同じくらい簡単です。データ値を単純に変更することは、その行と列をクリックして新しい値を入力することと同じくらい簡単です。

もちろん、何かを削除することは、偶然にも削除キーを押すことと同じくらい簡単です。

アクセス制限のないツールやアカウントをユーザーに提供すると、意図や事故などによってデータが変更されてしまうことはありません。

+0

ありがとうございます。私はISVにいる。だから私は彼らがAccessで何をしているのか分かりません。 – Kinze

2

通常、SQL Serverデータは、ODBC/OLEDB接続であるリンクテーブルを使用してMSACCESSでアクセスされます。この技術は幾分陳腐化しており、バグが完全には解消されていませんが、原因となっている可能性のある技術については考えられません。

通常のユーザーは、SQL Serverデータベースの管理者IDとパスワード(制限のないアクセス権)を含むODBCデータソースまたは接続文字列を使用してこれらのテーブルにアクセスしていますか?もしそうであれば、欠落しているデータは与えられたものになるでしょう。開いているMSACCESSリンクテーブルの行を削除するのは、Excelで行を削除するのと同じくらい簡単です。

MSACCESS/SQL接続でのレコードのロックは、通常、(変更しない限り)楽観的です。 SQL Server 2000の昔は、2人で同じレコードを同時に編集していた場合、最後に保存した人が(黙って)勝ったということになりました。今日、最後の人のセービングは、誰かが変更を加えている間に他の人がレコードを編集したことを伝え、2つのオプションを提供します。変更を破棄したり、他の人の変更を上書きします。

いずれにしても、テーブルへの読み取り専用アクセスを提供すると、多くの胸やけが緩和されます。

関連する問題