リンク サーバーの作成(SQL Server データベース)
サーバーマシンのリプレイスなどで、
並行運用期間を経て、
新サーバーに旧サーバーのデータを移行する時に役立つのがリンクサーバー。
作成はとっても簡単なので、
覚えておいて損は無いでしょう。
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 です。
?A新しいリンクサーバーの作成
インスタンス名下のツリーから、
「サーバーインスタンス名」→「サーバーオブジェクト」→「リンクサーバー」を展開します。
?B「リンクサーバー」を右クリックし、サブメニュー内の「新しいリンクサーバー」をクリックします。
?Cリンクサーバーの設定
「全般」タブを開き設定を行います。
■リンクサーバー:作成するリンクサーバーの名称です。
SQLでアクセスする際に必要になるので、
解り易い名称を付けるようにしましょう。
■サーバーの種類:「その他のデータソース」を選択してください。
■プロバイダー:「SQL Server Native Client 10.0」を選択してください。
■製品名:リンクサーバー作成(設置)先のサーバー名を入力してください。
(名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)
■データソース:リンク元(リンクしたい)のサーバー名を入力してください。
(名前付きインスタンスの場合は、コンピュータ名\sqlexpressやipアドレス\sqlexpress等になります。)
「セキュリティ」タブを開きます。
「上記一覧で定義されないログインの接続方法」から、
「このセキュリティコンテキストを使用する」を選択し、
リモートログイン、パスワードを入力します。
■リモートログイン:sa
■パスワード:「パスワード」
?D「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」(※1)を入力してください。
※1:インストールされているSQL Server のバージョン毎に異なります。最新はSQLNCLI11です。
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ユーザーの「パスワード」を設定します。
シノニムを利用して別名を付ける
シノニムを利用して別名をつけることもできるようです。
Create Synonym [シノニム名] For [リンクサーバー名].[データベース名].[スキーマ名].[テーブル名]
(サンプル)
CREATE SYNONYM MyProduct
FOR AdventureWorks2012.Production.Product;
リンクサーバーへのアクセス
SQLを利用してのリンクサーバー内データベースへのアクセスは以下のように行います。
select * from [リンクサーバー].[データベース].[dbo].[テーブル]
【2020/4/15追記】
新型コロナウイルスの感染拡大に伴い在宅勤務の方が増えている影響だと思いますが、
この記事へのアクセスが増加しています。
皆さまのお役に立てれば幸いです。
【このカテゴリーの最新記事】
- no image
- no image
- no image
- no image