Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
есть 2 сервера на которых установлены SQL Server 2008R2.
select @@version с них:

1-й:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2772.0 (Intel X86)   Aug  9 2011 15:21:55   Copyright (c) Microsoft Corporation  Standard Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) 
2-й:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2772.0 (Intel X86)   Aug  9 2011 15:21:55   Copyright (c) Microsoft Corporation  Standard Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) 

Линкую:
EXEC master.dbo.sp_addlinkedserver @server = N'IBS', @srvproduct=N'', @provider=N'SQLOLEDB'
GO

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'IBS',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword=N'xxxxxxx' 
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'IBS',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword=N'xxxxxxxx'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'rpc', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'rpc out', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'IBS', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

линк создан успешно и тест проходит:
exec sp_testlinkedserver N'IBS'
go

но когда выполняю следующий запрос:
select * from IBS.Tantal1.dbo.Stud
вылезает следующее:
Msg 7314, Level 16, State 1, Line 1
The OLE DB provider "SQLNCLI10" for linked server "IBS" does not contain the table ""Tantal1"."dbo"."Stud"". The table either does not exist or the current user does not have permissions on that table.

делаю следующий запрос:
select * from ibs.master.dbo.sysdatabases

и обнаруживаю, что в выборке нет базы Tantal1...
вроде я линкуюсь под пользователем sa, у которого Tantal1 стоит по умолчанию, а почему тогда не видит?

и когда теже действия проделываешь с другим сервером на котором 2005-й SQL Server стоит, там все замечательно видит и все, что надо работает...

Сообщение было отредактировано: 18 окт 11, 15:48
18 окт 11, 15:46    [11460382]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Azomorph
вроде я линкуюсь под пользователем sa, у которого Tantal1 стоит по умолчанию, а почему тогда не видит?


exec('select suser_sname(), user_name(), ORIGINAL_LOGIN()') AT IBS
18 окт 11, 18:54    [11461891]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
Glory
Azomorph
вроде я линкуюсь под пользователем sa, у которого Tantal1 стоит по умолчанию, а почему тогда не видит?


exec('select suser_sname(), user_name(), ORIGINAL_LOGIN()') AT IBS



sa dbo sa

пишет
19 окт 11, 08:32    [11463756]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Glory
Member

Откуда:
Сообщений: 104751
exec('select @@servername, * from sysdatabases ') AT IBS
19 окт 11, 09:20    [11463845]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
а вот тут уже выдает:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sysdatabases'.

хотя в таком виде работает:
select @@servername,* from [ibs].master.DBO.sysdatabases

но как я понимаю, в этом случае переменная @@servername выдает имя сервера на котором я выполняю запрос, а не прилинкованного...
19 окт 11, 09:33    [11463874]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
Azomorph
а вот тут уже выдает:
хотя в таком виде работает:
select @@servername,* from [ibs].master.DBO.sysdatabases

но как я понимаю, в этом случае переменная @@servername выдает имя сервера на котором я выполняю запрос, а не прилинкованного...

а если сделать так:
exec('select @@servername, sysdatabases.* from master.dbo.sysdatabases ') AT IBS 

то работает и выдает аналогичный результат, что в цитате
но в списке нет нужной базы... хотя она там есть и тот же сервер прилинкован к серверу на котором 2005-й установлен и выдает список баз который доступен на IBS

и вот сейчас я заметил, что на исходном сервере выдает список баз, что есть на нем, а не IBS...
19 окт 11, 09:39    [11463891]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Azomorph
то работает и выдает аналогичный результат, что в цитате
но в списке нет нужной базы.

Значит ее нет на этом сервере
Потому что exec() AT IBS просто передает текст удаленному серверу на выполнение. И отображает полученный результат
И @@servername возвращает имя сервера, на котором выполняется ваш запрос

Сообщение было отредактировано: 19 окт 11, 10:18
19 окт 11, 10:16    [11464122]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
Glory
Azomorph
то работает и выдает аналогичный результат, что в цитате
но в списке нет нужной базы.

Значит ее нет на этом сервере
Потому что exec() AT IBS просто передает текст удаленному серверу на выполнение. И отображает полученный результат
И @@servername возвращает имя сервера, на котором выполняется ваш запрос

хм... и что же получается:
на 2005-м выполняю он выполняется на IBS
на этом выполняется на нем же?

вот как так? и что же делать?
линк есть, но запрос в итоге локально выполняется...
19 окт 11, 11:58    [11464929]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Azomorph
хм... и что же получается:
на 2005-м выполняю он выполняется на IBS

Вам лучше знать. IBS это только логическое имя
Вас удивляет, что можно создать линк к самому себе ?
19 окт 11, 12:00    [11464947]     Ответить | Цитировать Сообщить модератору
 Re: linked 2008 R2 -> 2008 R2, не видит нужной базы на linked server  [new]
Azomorph
Member

Откуда:
Сообщений: 300
Glory
Azomorph
хм... и что же получается:
на 2005-м выполняю он выполняется на IBS

Вам лучше знать. IBS это только логическое имя
Вас удивляет, что можно создать линк к самому себе ?

вообще-то должно браться из днс ай-пи)
так... попробую ка я по айпи линк сделать
19 окт 11, 12:02    [11464964]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить