April 5, 2011 at 9:55 am
On ServerA (a 2000 SQL Server running sp4) I created a link server ServerB which is a 2005 SQL Server, I have both SQL logins & windows logins set up on both servers with permissions, and "Be made using login's current security context" set. When I run a query from ServerB I receive
"Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "AFDCSQL3". The provider supports the interface, but returns a failure code when it is used."
But when I run a query from ServerA I receive:
"Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'ServerB' does not contain table '"DBName"."Test"'. The table either does not exist or the current user does not have permissions on that table.
OLE DB error trace [Non-interface error: OLE DB provider does not contain the table: ProviderName='ServerB', TableName='"DBName"."Test"'].
Which is not true because I was able to query the database an table "Test" with that login.
What am I missing?
April 5, 2011 at 11:50 am
When you select the option "Be made using this security context" what login are you using? If you using windows login it will not work since there are couple more things which you need to change at windows level like delegation. Using sql login is best. Can you try that and let us know?
April 5, 2011 at 12:08 pm
I'm still receiving the 7314 error message And I ran: osql -E -S linkservername -i "\\Path\instcat.sql" on both servers.
April 5, 2011 at 1:15 pm
I still get my answer;-). What type of login are you using?
April 5, 2011 at 1:46 pm
I've tried a windows login and a sql login.
April 5, 2011 at 2:04 pm
you had previously said you had this setting "Be made using login's current security context" set."
The typical issues for linked servers tend to be related to which security context you are using, and sometimes what is the default database of the remote user you are using, can you just confirm that this is the setting you are using? we really need to know EXACTLY how you set this portion of the screen up:
can you show us the exact command that you ran that raised the error?
was it really select * from SeverB.DBName.Test?
a linked server needs to be a 4 part naming convention, like ServerB.Databasename.dbo.Test, for example, in order to go to the correct object...i think it's a syntax issue and not a linked server issue.
Lowell
April 6, 2011 at 9:27 am
My statements is:
Select * from LinkingServer..Databasename.TableName
Since I'm going from a 32 bit SQL Server 2000 machine to a 64 bit SQL 2005 Server I believe I need to create or use a 32 bit DSN? I was using the OLE DB which seem not to work. Is this correct?
April 6, 2011 at 9:38 am
the SQL statement is wrong.
if you are going to use double dots, which tells the linked server to get the default object, it is like this:
it has to be Select * from LinkingServer.Databasename..TableName
or
Select * from LinkingServer.Databasename.dbo.TableName
Lowell
April 11, 2011 at 6:08 am
Viewing 9 posts - 1 through 8 (of 8 total)
You must be logged in to reply to this topic. Login to reply