Thursday, March 8, 2012
Another issue with Linked Server
I read this article. Maybe Im just plain dumb, but I get this error when I
try to connect to a Linked Access database via sql server. Now the article
states to login using the SQL Server start up account. Im assuming that this
account is the one thats stated in the MSSQLSERVER service under the LogOn
tab.
Well, if it is, then the logon account is "system" in my case. And I cant
physically login to the computer as system now can I?
How difficult can it be to create a linked server to a access database thats
password protected?
Girish
Hi Girish,
From your descriptions, I understood you would like to link an secured
Access mdb file as Linked Server in SQL Server. Have I understood you? If
there is anything misunderstood, please feel free to let me know.
First of all, I would like to answer the question what "system" is. If you
see "System" is selected in LogOn tab of MSSQLServer service, it means
MSSQLServer is started by the account you start Windows. For example,
assuming you are login as "Girish" in you Windows 2003 (or other Windows
Operation System) and "Girish" is in Administartor Group of Windows 2003,
your SQL Server is started as "Girish".
Secondly, I am not sure you encounter exactly the scenario KB:814398
described. Based on my scope, I think the following documents will be
helpful for you.
HOWTO: Use a SQL Server 7.0 Distributed Query with a Linked Server to
Secured Access Databases
http://support.microsoft.com/default...;en-us;Q246255
You receive a "Could not find installable ISAM" error message or some file
types are missing when you import files, export files, or link files in
Access 2000
http://support.microsoft.com/default...;EN-US;Q209805
Thank you for your patience and cooperation. If you have any questions or
concerns, don't hesitate to let me know. We are here to be of assistance!
Sincerely yours,
Mingqing Cheng
Microsoft Developer Community Support
Introduction to Yukon! - http://www.microsoft.com/sql/yukon
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only, many thanks!
|||Thanks for your reply.
What does SQL Server use to logon to if I do not login interactively?
Its a service so must still run all the time right?
Girish
""Mingqing Cheng [MSFT]"" <v-mingqc@.online.microsoft.com> wrote in message
news:VbRBzDZhEHA.2632@.cpmsftngxa10.phx.gbl...
> Hi Girish,
> From your descriptions, I understood you would like to link an secured
> Access mdb file as Linked Server in SQL Server. Have I understood you? If
> there is anything misunderstood, please feel free to let me know.
> First of all, I would like to answer the question what "system" is. If you
> see "System" is selected in LogOn tab of MSSQLServer service, it means
> MSSQLServer is started by the account you start Windows. For example,
> assuming you are login as "Girish" in you Windows 2003 (or other Windows
> Operation System) and "Girish" is in Administartor Group of Windows 2003,
> your SQL Server is started as "Girish".
> Secondly, I am not sure you encounter exactly the scenario KB:814398
> described. Based on my scope, I think the following documents will be
> helpful for you.
> HOWTO: Use a SQL Server 7.0 Distributed Query with a Linked Server to
> Secured Access Databases
> http://support.microsoft.com/default...;en-us;Q246255
> You receive a "Could not find installable ISAM" error message or some file
> types are missing when you import files, export files, or link files in
> Access 2000
> http://support.microsoft.com/default...;EN-US;Q209805
> Thank you for your patience and cooperation. If you have any questions or
> concerns, don't hesitate to let me know. We are here to be of assistance!
>
> Sincerely yours,
> Mingqing Cheng
> Microsoft Developer Community Support
> Introduction to Yukon! - http://www.microsoft.com/sql/yukon
> This posting is provided "as is" with no warranties and confers no rights.
> Please reply to newsgroups only, many thanks!
>
|||Hi Girish,
MSSQLServer is run as a background services, you could also make it started
automatically or manually. In General Tab of MSSQLServer, you could change
"Startup type" between Automatic, Manual and Disable, while you could click
the button under Serivce status to make it start, stop and pause (resume).
If you choose Manual, MSSQLServer will be started only after you click the
"start" button, if Automatic is choosen, MSSQLServer will be started every
time Windows started up.
Additional, we could also use DOS-prompt to start/stop a service like
MSSQLServer. For example, "net start mssqlserver" or "net stop mssqlserver"
Thank you for your patience and cooperation. If you have any questions or
concerns, don't hesitate to let me know. We are here to be of assistance!
Sincerely yours,
Mingqing Cheng
Microsoft Developer Community Support
Introduction to Yukon! - http://www.microsoft.com/sql/yukon
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only, many thanks!
|||My mistake... I didnt mean "how" does it start up...
I meant.. when it starts up automatically, what account does it use to login
if I choose "system" and Im NOT interactively logged into the computer.
Im getting confused because my MSSQLServer does run in the background... and
Ive choosen it to login as system... and you said in an earlier email that
system means; if I LOGIN as Girish, then system = Girish. If I login as XYZ,
then system = XYZ.
Now my Q is; if I DONT login at all and MSSQLServer is automatic and a
background service and is set to login as system; then system = ?
Girish
""Mingqing Cheng [MSFT]"" <v-mingqc@.online.microsoft.com> wrote in message
news:cagdUwchEHA.2632@.cpmsftngxa10.phx.gbl...
> Hi Girish,
> MSSQLServer is run as a background services, you could also make it
started
> automatically or manually. In General Tab of MSSQLServer, you could change
> "Startup type" between Automatic, Manual and Disable, while you could
click
> the button under Serivce status to make it start, stop and pause (resume).
> If you choose Manual, MSSQLServer will be started only after you click the
> "start" button, if Automatic is choosen, MSSQLServer will be started every
> time Windows started up.
> Additional, we could also use DOS-prompt to start/stop a service like
> MSSQLServer. For example, "net start mssqlserver" or "net stop
mssqlserver"
> Thank you for your patience and cooperation. If you have any questions or
> concerns, don't hesitate to let me know. We are here to be of assistance!
>
> Sincerely yours,
> Mingqing Cheng
> Microsoft Developer Community Support
> Introduction to Yukon! - http://www.microsoft.com/sql/yukon
> This posting is provided "as is" with no warranties and confers no rights.
> Please reply to newsgroups only, many thanks!
>
|||Hi Girish,
I feel sorry for my poor understanding, thanks for your kindest
explaination.
If MSSQLServer is selected to be started as Local System account, it will
be started as NT AUTHORITH\SYSTEM. This account is internal and invisable
no matter what username you choosed to login.
Here are some descriptions fro BOL, which I think will be helpful
explaining it
The local system account does not require a password, does not have network
access rights in Windows NT 4.0, and may restrict your SQL Server
installation from interacting with other servers.
Note In Windows 2000, the local system account does allow network access.
Thank you for your patience and cooperation. If you have any questions or
concerns, don't hesitate to let me know. We are here to be of assistance!
Sincerely yours,
Mingqing Cheng
Microsoft Developer Community Support
Introduction to Yukon! - http://www.microsoft.com/sql/yukon
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only, many thanks!
|||Hi Girish,
I am just checking on your progress regarding the information that was sent
you! If you encounter any difficulty, please do not hesitate to let me
know. Please post here and let me know the status of your issue. Without
your further information, it's very hard for me to continue with the
troubleshooting.
Looking forward to hearing from you soon. Thank you for your patience and
cooperation.
Sincerely yours,
Mingqing Cheng
Microsoft Developer Community Support
Introduction to Yukon! - http://www.microsoft.com/sql/yukon
This posting is provided "as is" with no warranties and confers no rights.
Please reply to newsgroups only, many thanks!
Wednesday, March 7, 2012
Another 2005 x64 to 2000 x32 Linked Server Problem
Hello,
I have been searching the archives for information on problems that occur with creating a linked server to SQL Server 2000 from SQL Server 2005 x64, but the problem I am having seems to be slightly different.
I was able to create the linked server from the 2005 server this way;
Exec sp_addlinkedserver
@.Server = '2kServer',
@.srvproduct = 'SQL Server'
I was able to add the login this way;
Exec sp_addlinkedsrvlogin
@.rmtsrvname = '2kServer',
@.useself='False',
@.locallogin='domain\cdun2',
@.rmtuser='domain\cdun2',
@.rmtpassword='pswd'
I receive 'Command(s) completed successfully' for both. When I attempt to run either of the following queries from a connection to the 2005 server in Management Studio;
select top 100 * from 2kServer.database.dbo.table
select * from Openquery(2kServer,'select top 10 * from database.dbo.table')
I get the following error
OLE DB provider "SQLNCLI" for linked server "2kServer" returned message "Communication link failure".
Msg 10054, Level 16, State 1, Line 0
TCP Provider: An existing connection was forcibly closed by the remote host.
Msg 18456, Level 14, State 1, Line 0
Login failed for user 'domain\cdun2'.
I've seen a couple of ideas on this. One states the following;
***************************************
When running 4 part reference query like this:
select * from sql2000.mybase.dbo.mytable
SQL Server 2005 x64 runs the following query on remote SQL2000 server:
exec [mybase]..sp_tables_info_rowset_64 N'mytable', N'dbo', NULL
Unfortunately there is no such a proc on SQL2k. However, sp_tables_info_rowset exists and does the same thing. The solution is to create wrapper on master database like this:
create procedure sp_tables_info_rowset_64
@.table_name sysname,
@.table_schema sysname = null,
@.table_type nvarchar(255) = null
as
declare @.Result int set @.Result = 0
exec @.Result = sp_tables_info_rowset @.table_name, @.table_schema, @.table_type
And then everything works fine. If you don't want to create "Microsoft like" objects on master database, use openquery instead of 4 part reference.
**************************************
I put this proc on the 2kServer and tried again, but I got the same error. I've also seen this:
I went into the Sql Server Configuration Manager, Sql Native Client
Configuration -> Protocols and disabled Shared Memory and made the TCP/IP
protocol #1 in order. Then just restarted the Sql Service and it all started
working!
I don't have access to the server to do this, but I wonder if it would solve the problem. I am a sys admin on both servers. The servers are in two different domains. Could this be a firewall issue?
Thank you for your help!
cdun2
I am not a linked server expert but it looks like you need to switch the following parameter
@.rmtuser='domain\cdun2',
to one that is a valid user on the the second domain since the two servers are in different domains.
HTH,
-Steven Gott
SDE/T
SQL Server
|||Sorry for the delayed response. I'll be able to check into this tomorrow.
cdun2
Another 2005 x64 to 2000 x32 Linked Server Problem
Hello,
I have been searching the archives for information on problems that occur with creating a linked server to SQL Server 2000 from SQL Server 2005 x64, but the problem I am having seems to be slightly different.
I was able to create the linked server from the 2005 server this way;
Exec sp_addlinkedserver
@.Server = '2kServer',
@.srvproduct = 'SQL Server'
I was able to add the login this way;
Exec sp_addlinkedsrvlogin
@.rmtsrvname = '2kServer',
@.useself='False',
@.locallogin='domain\cdun2',
@.rmtuser='domain\cdun2',
@.rmtpassword='pswd'
I receive 'Command(s) completed successfully' for both. When I attempt to run either of the following queries from a connection to the 2005 server in Management Studio;
select top 100 * from 2kServer.database.dbo.table
select * from Openquery(2kServer,'select top 10 * from database.dbo.table')
I get the following error
OLE DB provider "SQLNCLI" for linked server "2kServer" returned message "Communication link failure".
Msg 10054, Level 16, State 1, Line 0
TCP Provider: An existing connection was forcibly closed by the remote host.
Msg 18456, Level 14, State 1, Line 0
Login failed for user 'domain\cdun2'.
I've seen a couple of ideas on this. One states the following;
***************************************
When running 4 part reference query like this:
select * from sql2000.mybase.dbo.mytable
SQL Server 2005 x64 runs the following query on remote SQL2000 server:
exec [mybase]..sp_tables_info_rowset_64 N'mytable', N'dbo', NULL
Unfortunately there is no such a proc on SQL2k. However, sp_tables_info_rowset exists and does the same thing. The solution is to create wrapper on master database like this:
create procedure sp_tables_info_rowset_64
@.table_name sysname,
@.table_schema sysname = null,
@.table_type nvarchar(255) = null
as
declare @.Result int set @.Result = 0
exec @.Result = sp_tables_info_rowset @.table_name, @.table_schema, @.table_type
And then everything works fine. If you don't want to create "Microsoft like" objects on master database, use openquery instead of 4 part reference.
**************************************
I put this proc on the 2kServer and tried again, but I got the same error. I've also seen this:
I went into the Sql Server Configuration Manager, Sql Native Client
Configuration -> Protocols and disabled Shared Memory and made the TCP/IP
protocol #1 in order. Then just restarted the Sql Service and it all started
working!
I don't have access to the server to do this, but I wonder if it would solve the problem. I am a sys admin on both servers. The servers are in two different domains. Could this be a firewall issue?
Thank you for your help!
cdun2
I am not a linked server expert but it looks like you need to switch the following parameter
@.rmtuser='domain\cdun2',
to one that is a valid user on the the second domain since the two servers are in different domains.
HTH,
-Steven Gott
SDE/T
SQL Server
|||Sorry for the delayed response. I'll be able to check into this tomorrow.
cdun2