リンク サーバーの作成(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 です。
②新しいリンクサーバーの作成
インスタンス名下のツリーから、
「サーバーインスタンス名」→「サーバーオブジェクト」→「リンクサーバー」を展開します。
③「リンクサーバー」を右クリックし、サブメニュー内の「新しいリンクサーバー」をクリックします。
④リンクサーバーの設定
「全般」タブを開き設定を行います。
■リンクサーバー:作成するリンクサーバーの名称です。
SQLでアクセスする際に必要になるので、
解り易い名称を付けるようにしましょう。
■サーバーの種類:「その他のデータソース」を選択してください。
■プロバイダー:「SQL Server Native Client 10.0」を選択してください。
■製品名:リンクサーバー作成(設置)先のサーバー名を入力してください。
(名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)
■データソース:リンク元(リンクしたい)のサーバー名を入力してください。
(名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)
「セキュリティ」タブを開きます。
「上記一覧で定義されないログインの接続方法」から、
「このセキュリティコンテキストを使用する」を選択し、
リモートログイン、パスワードを入力します。
■リモートログイン:sa
■パスワード:「パスワード」
⑤「OK」をクリックします。リンクサーバーが作成されます。
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].[テーブル]
留言
張貼留言