- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access(Jet4.0)SQLでGRANTが使用できない)
Access(Jet4.0)SQLでGRANTが使用できない
このQ&Aのポイント
- AccessでGrantを使ったSQLクエリを実行すると、正常に実行されないエラーが発生します。
- 管理者権限でログインしているにも関わらず、特定のユーザに読み取り権限の付与・削除ができません。
- SQLステートメントが正しくないというエラーメッセージが表示され、原因が分からない状況です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
経験は特にありませんので参考意見ですが。 Advanced Microsoft Jet SQL for Access 2000 http://msdn.microsoft.com/en-us/library/aa139977(office.10).aspx 上記文書内に、下記の一節があります。 Note The GRANT and REVOKE statements can be executed only through the Jet OLE DB provider and ADO. They will return an error message if used through the Access SQL View user interface or DAO. ですので、推測ですが下記のように DAO 経由で実行しようとして いらっしゃるのではないでしょうか。 CurrentDb.Execute "GRANT SELECT ON TABLE myTable TO MyGroup" 正しくは、Jet OLE DB プロバイダと ADO 経由で実行する必要が あります。 たとえば Access 上から開いているカレントのデータベースに 対して実行するなら、こんな感じではないでしょうか。 CurrentProject.Connection.Execute "GRANT SELECT ON TABLE myTable TO MyGroup" 単発の変更でしたら [ツール]-[セキュリティ] から GUI ベースの 手作業で変更したほうが簡単ですが…。
お礼
yu_tang さま 回答ありがとうございました。 ご指摘の通り、DAO 経由で実行しようとしておりました。 回答を参考にJet OLE DB プロバイダ経由で実行するよう、簡易な .NETアプリケーションを作成したところ、無事Grantを通すことが 出来ました。 (ワークグループ情報ファイルの指定が必要であることが 分からず随分時間が掛かってしまいましたが f^^;) 拙い質問にも丁寧なご回答いただきありがとうございました。