リンク サーバーの作成(SQL Server データベース)


from http://fanblogs.jp/booboo7x70/archive/279/0




サーバーマシンのリプレイスなどで、
並行運用期間を経て、
新サーバーに旧サーバーのデータを移行する時に役立つのがリンクサーバー。

作成はとっても簡単なので、
覚えておいて損は無いでしょう。


SQL Server Management Studio でリンクサーバを設定する方法


無償で使えるSQL Server Express Editionにも付属している
SQL Server Management Studio を使っての設定手順は次の通りです。

①SQL Server Management Studioの起動
Microsoft SQL Server Management Studio を起動し、
SQL Server に接続します。
接続するのは、リンクサーバーを設置するSQL Server です。

②新しいリンクサーバーの作成
インスタンス名下のツリーから、
「サーバーインスタンス名」→「サーバーオブジェクト」→「リンクサーバー」を展開します。

G001.jpg

③「リンクサーバー」を右クリックし、サブメニュー内の「新しいリンクサーバー」をクリックします。

G002.jpg

④リンクサーバーの設定

G003.jpg


「全般」タブを開き設定を行います。

■リンクサーバー:作成するリンクサーバーの名称です。
SQLでアクセスする際に必要になるので、
解り易い名称を付けるようにしましょう。

■サーバーの種類:「その他のデータソース」を選択してください。

■プロバイダー:「SQL Server Native Client 10.0」を選択してください。

■製品名:リンクサーバー作成(設置)先のサーバー名を入力してください。
 (名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)

■データソース:リンク元(リンクしたい)のサーバー名を入力してください。
 (名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)

G004.jpg

「セキュリティ」タブを開きます。

「上記一覧で定義されないログインの接続方法」から、
「このセキュリティコンテキストを使用する」を選択し、
リモートログイン、パスワードを入力します。

■リモートログイン:sa
■パスワード:「パスワード」

⑤「OK」をクリックします。リンクサーバーが作成されます。

G005.jpg

Transact-SQL でリンクサーバを設定する方法



sp_addlinkedserver 構文


sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] 
[ , [ @provider= ] 'provider_name' ] 
[ , [ @datasrc= ] 'data_source' ] 
[ , [ @location= ] 'location' ] 
[ , [ @provstr= ] 'provider_string' ] 
[ , [ @catalog= ] 'catalog' ] 

【実行命令文】

192.168.1.1\sqlexpressサーバー内に、
192.168.0.1\sqlexpressサーバーのデータベースをリンクする
LinkSvという名称のリンクサーバーを作成するTransact-SQLです。

EXEC master.dbo.sp_addlinkedserver 
@server = 'LinkSv',         ・・・リンクサーバー
@srvproduct ='192.168.0.1\sqlexpress',          ・・・製品名
@datasrc = '192.168.1.1\sqlexpress',            ・・・データソース
@provider = 'SQLNCLI10',           ・・・プロバイダー
@provstr = ''

■リンクサーバー:作成するリンクサーバーの名称です。
SQLでアクセスする際に必要になるので、
解り易い名称を付けるようにしましょう。

■製品名:リンクサーバー作成(設置)先のサーバー名を入力してください。
 (名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)

■データソース:リンク元(リンクしたい)のサーバー名を入力してください。
 (名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)

■プロバイダー:「SQLNCLI10」を入力してください。


sp_addlinkedsrvlogin 構文


sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] 
[ , [ @locallogin = ] 'locallogin' ] 
[ , [ @rmtuser = ] 'rmtuser' ] 
[ , [ @rmtpassword = ] 'rmtpassword' ] 

【実行命令文】

LinkSvへアクセスする「sa」ユーザーを設定するTransact-SQLです。

EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'LinkSv',       ・・・リンクサーバー
@useself = 'false',
@rmtuser = 'sa',          ・・・リモートユーザー
@rmtpassword = 'P0ssW0rd'         ・・・パスワード

■リモートユーザー:sa を設定します。
■パスワード:saユーザーの「パスワード」を設定します。


リンクサーバーへのアクセス


SQLを利用してのリンクサーバー内データベースへのアクセスは以下のように行います。

select * from [リンクサーバー].[データベース].[dbo].[テーブル]



留言

熱門文章