Discussion:
Registry hack for creating a linked server from a secured mdb
(too old to reply)
Patrick Jackman
2010-05-06 20:35:11 UTC
Permalink
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.

The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.

Then I run TSQL similar to this:
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'

EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'

Is there any other way to read the secured Jet data?

Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
Mary Chipman [MSFT]
2010-05-07 13:28:24 UTC
Permalink
De-secure the Access databases, removing user-level security. You can
achieve the same effects with custom obfuscation using login forms and
hidden tables, etc. Access security is generally considered to be an
oxymoron judging by all the hits you get when you search on cracking
it.

--Mary

On Thu, 6 May 2010 13:35:11 -0700, "Patrick Jackman" <pjackman at
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
Patrick Jackman
2010-05-07 17:03:00 UTC
Permalink
Thanks Mary.

De-securing would be quite a bit more work than the registry hack in this
situation.

I'm hoping that someone has a suggestion that is a bit easier to implement.

Patrick.
Post by Mary Chipman [MSFT]
De-secure the Access databases, removing user-level security. You can
achieve the same effects with custom obfuscation using login forms and
hidden tables, etc. Access security is generally considered to be an
oxymoron judging by all the hits you get when you search on cracking
it.
--Mary
On Thu, 6 May 2010 13:35:11 -0700, "Patrick Jackman" <pjackman at
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
Mary Chipman [MSFT]
2010-05-18 18:15:51 UTC
Permalink
Create a new mdb with the default system.mdw and import everything.

--Mary

On Fri, 7 May 2010 10:03:00 -0700, "Patrick Jackman" <pjackman at
Post by Patrick Jackman
Thanks Mary.
De-securing would be quite a bit more work than the registry hack in this
situation.
I'm hoping that someone has a suggestion that is a bit easier to implement.
Patrick.
Post by Mary Chipman [MSFT]
De-secure the Access databases, removing user-level security. You can
achieve the same effects with custom obfuscation using login forms and
hidden tables, etc. Access security is generally considered to be an
oxymoron judging by all the hits you get when you search on cracking
it.
--Mary
On Thu, 6 May 2010 13:35:11 -0700, "Patrick Jackman" <pjackman at
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
david
2010-05-10 03:57:41 UTC
Permalink
I haven't tried it, but the extra information would go into the
provider-string parameter, @provstr, which is the place for
"a provider specific connection string".

@provstr='System Database=system.mdw;'

(david)
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
Patrick Jackman
2010-05-10 05:50:47 UTC
Permalink
Thanks David. I can't get it to work and I haven't found any success stories
about this approach on the web.

Patrick.
Post by david
I haven't tried it, but the extra information would go into the
"a provider specific connection string".
@provstr='System Database=system.mdw;'
(david)
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
david
2010-05-10 10:22:00 UTC
Permalink
That's odd - I don't see how they could get the OLE-DB
provider to NOT work using the standard interface. Do
you get "Invalid connection string attribute"?

I think it should be done this way:
@provstr='Jet OLEDB:System Database=system.mdw;'

(I'm sorry, my development server has been down for the
last 12-18 months....)


FWIW, the fallback position would be to use the OLEDB
ODBC provider (MSDASQL) instead of the JET provider.
The "Access" DSN allows you to specify the system database.
A DSN may be either a file (using the INI file format) or the
equivalent set of registry entries.

(david)
Post by Patrick Jackman
Thanks David. I can't get it to work and I haven't found any success
stories about this approach on the web.
Patrick.
Post by david
I haven't tried it, but the extra information would go into the
"a provider specific connection string".
@provstr='System Database=system.mdw;'
(david)
Post by Patrick Jackman
In SQL Server 2008 I am creating linked servers from several secured Jet
databases to read data. Fortunately they all use the same .mdw.
The only way that I have been able to get this to work is by setting the
server's HKLM\Microsoft\Jet\4.0\Engines\SystemDB to point to the .mdw file.
EXEC sp_addlinkedserver
@server='MCardDat',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLE DB Provider for Jet',
@datasrc='C:\My Documents\Projects\Medicard\CAN\Data\MCardDat.mdb'
EXEC sp_addlinkedsrvlogin 'MCardDat', FALSE, NULL, 'Login', 'pwd'
Is there any other way to read the secured Jet data?
Patrick
=-=-=-=-=-=-=-=-=-=-=-=-=-
Patrick Jackman
Vancouver, BC
Loading...