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

Откуда: хутор БольшойБугор
Сообщений: 726
вот так работает
EXEC sp_addlinkedserver
       @server = 'ABC'
      ,@srvproduct = 'SQLServer OLEDB Provider'
      ,@provider = 'SQLOLEDB'
      ,@datasrc = 'my.mycorp.com,1433'
EXEC sp_addlinkedsrvlogin 
    @rmtsrvname=  'ABC' 
   ,@useself= 'FALSE' 
   ,@locallogin= 'local_user'
   ,@rmtuser= 'rmt_user'
   ,@rmtpassword= 'rmt_password'

--Check if the link is working
SELECT * FROM ABC.dbName.dbo.SomeTable

а по ИП адресу никак:
EXEC sp_addlinkedserver
       @server = 'ABC'
      ,@srvproduct = 'SQLServer OLEDB Provider'
      ,@provider = 'SQLOLEDB'
      ,@datasrc = '192.168.1.1,1433'

EXEC sp_addlinkedsrvlogin 
    @rmtsrvname=  'ABC' 
   ,@useself= 'FALSE' 
   ,@locallogin= 'local_user'
   ,@rmtuser= 'rmt_user'
   ,@rmtpassword= 'rmt_password'
   
   
--Check if the link is working
SELECT * FROM ABC.dbName.dbo.SomeTable

ошибка
OLE DB provider "SQLNCLI" for linked server "ABC" returned message "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.".
OLE DB provider "SQLNCLI" for linked server "ABC" 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.
20 июл 11, 18:52    [11002380]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
а если вот так:
,@datasrc = '[192.168.1.1]'

или вот так
,@datasrc = '[192.168.1.1,1433]'
???
20 июл 11, 20:02    [11002640]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
kapelan
Member

Откуда: хутор БольшойБугор
Сообщений: 726
SIMPLicity_
а если вот так:
,@datasrc = '[192.168.1.1]'
Msg 11001, Level 16, State 1, Line 0
TCP Provider: No such host is known.
или вот так
,@datasrc = '[192.168.1.1,1433]'
???

Msg 87, Level 16, State 1, Line 0
SQL Network Interfaces: Connection string is not valid [87]. 
21 июл 11, 00:25    [11003685]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
kapelan,
/****** Object:  LinkedServer [127.0.0.1,1433]    Script Date: 07/21/2011 00:29:56 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'127.0.0.1,1433', @srvproduct=N'SQL Server'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'127.0.0.1,1433',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

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

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

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

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

EXEC master.dbo.sp_serveroption @server=N'127.0.0.1,1433', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'127.0.0.1,1433', @optname=N'rpc out', @optvalue=N'false'
GO

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

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

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

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

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

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

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

@@VERSION
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86) Apr 22 2011 11:57:00 Copyright (c) Microsoft Corporation Data Center Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
21 июл 11, 00:31    [11003709]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
kapelan
Member

Откуда: хутор БольшойБугор
Сообщений: 726
SIMPLicity_,
ну да - так работает,
теперь меняем на другой адрес (не localhost) и получаем:
Msg 10054, Level 16, State 1, Line 0
TCP Provider: An existing connection was forcibly closed by the remote host.
21 июл 11, 00:50    [11003786]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                @provider='SQLOLEDB', @datasrc='87.236.xxx.xxx,xxxx'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'S1_instance1',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='password'
EXEC master.dbo.sp_serveroption @server=N'S1_instance1', @optname=N'collation compatible', @optvalue=N'false'
GO

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

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

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

EXEC master.dbo.sp_serveroption @server=N'S1_instance1', @optname=N'rpc', @optvalue=N'false'
GO

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

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

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

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

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

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

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

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

select * from S1_instance1.foliobase.dbo.sclad_r
Хм... работет. Реальный сервер реально выложенный в Интернет... Обращение в селекте через S1_instance1 выполняется - вижу настоящую табличку...
21 июл 11, 05:07    [11003987]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
kapelan
Member

Откуда: хутор БольшойБугор
Сообщений: 726
SIMPLicity_,

у меня не работает ;(

вот и мне нада найти где-ж етот болтик
который покрутить нада ;)
21 июл 11, 17:06    [11008295]     Ответить | Цитировать Сообщить модератору
 Re: Создать линк к ДБ  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
... да х*й его знает, почему оно так работает, а вот эдак - нет...; - это я тебе как специалист специалисту говорю.
Линкуй как линкуется.
Несмотря на кажущуюся очевидность, иногда работа с linked servers (по крайней мере, у меня) становится шаманством.
22 июл 11, 17:08    [11014175]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить