アプリ版:「スタンプのみでお礼する」機能のリリースについて

お尋ねします。
SQLサーバー2005にDB1というデータベースにdbo_TB1というテーブルがあります。そのテーブルの特定の列の値を更新したいので、AC.mdbというアクセスのファイルにテーブルのリンクをし、更新したいファイルを用意して、アクセスのクエリでデータを更新しようとしましたところ、更新ができませんでした。
 dbo_TB1を更新可能にするためには、どのようにして権限を与えればいいでしょうか。
 SQLサーバー2005の知識を習得しようと学習を始めたばかりで、よく理解できていません。よろしくお願いします。

A 回答 (2件)

通常SQL Serverの権限はデータベース/ユーザ単位につけるもので、個別のテーブルに権限をつけることは極めて稀です。


また、SQL Serverにはテーブル単位で読み取り専用にする機能もありません。
実際に更新権限をはずしても、表示されるメッセージは異なります。
ということで、ずいぶん悩みましたが、可能性が1つありました。

そのテーブルには主キーがなく、しかも、主キーを指定しないままリンクしたのではありませんか?
主キーのないリンクテーブルは更新できません(ODBCドライバの仕様上)。
その点を確認してみていただけますか?

この回答への補足

おっしゃる通り主キーの設定がありませんでした。
主キーの設定をすることで、データの更新ができました。
ご教授ありがとうございました。

補足日時:2008/11/10 16:54
    • good
    • 1
この回答へのお礼

随分ご心配いただきありがとうございます。
主キーの設定を確認してみます。
月曜日にもう一度確認をしてみます。

お礼日時:2008/11/07 22:56

・更新できなかったときのエラーメッセージは何でしたか?


(SQL Server側での権限不足が理由だと判断できるようなものでしたか?)
(そのテーブルを照会することはできるのですか?)

・そのSQL Serverは質問者さんが管理されているものですか?
(SQL Server Management Studioを使って管理者権限でログインできますか?)

・今リンクに使っているユーザはsaとかですか?別に作成したものですか?
 それともWindowsのユーザIDですか?

・リンクサーバはどうやって行いましたか?
(ODBCのメニューでDSNを作成してそれを指定しましたか?それとも別の方法ですか?)

・ACCESSのバージョンは何ですか?
    • good
    • 2
この回答へのお礼

ありがとうございます。
・更新できなかったときのエラーメッセージは何でしたか?
→「更新可能なクエリであることが必要です。」というメッセージでした。

・そのSQL Serverは質問者さんが管理されているものですか?
→私は、管理者権限がありますが。

・今リンクに使っているユーザはsaとかですか?別に作成したものですか?それともWindowsのユーザIDですか?
→サーバーへは、Windows認証でログインしています。そのデータベースにある他のテーブルリンクされたファイルはアクセスを使って更新が可能です。

・リンクサーバはどうやって行いましたか?
→ODBCのメニューでデータソースを選んで作成しました。

・ACCESSのバージョンは何ですか?
→2003を使っていますが、2000のファイル形式でアクセスのファイルは作られています。

よろしくお願いします。

お礼日時:2008/11/07 17:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す