Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
566 views
in Technique[技术] by (71.8m points)

java - no read permission on 'MSysObjects'

I want to use MS Access in my project. I try to integrate with this code.

rs = st.executeQuery("SELECT name FROM MSysObjects where database <> ''");

By using this I try to get all the table names from MSysObjects. But I get an error:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'.

Please help me resolve this error.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Give the Admin user read (SELECT) permission on MSysObjects.

In an Access session, open the Immediate window (Ctrl+g), construct a DDL GRANT statement and execute it from CurrentProject.Connection

strDdl = "GRANT SELECT ON MSysObjects TO Admin;"
CurrentProject.Connection.Execute strDdl

Note that statement must be executed from ADO. It should work as written because CurrentProject.Connection is an ADO object. However it will fail if attempted with a DAO Execute method such as CurrentDb.Execute or when run from the Access query designer.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...