SQL Server 2019でリンクサーバーを作成する方法

データベースを利用していると、ログインしているデータベースではなく、ほかのデータベースにアクセスしなければならない場合があります。そんなときにSQL Serverではリンクサーバーを使います。
リンクサーバーを使えば、色々なデータベースをリンク(接続)させることができ、アクセスできるデータベースが限定されなくなるのです。また、SQL Server以外のデータベースへもアクセスが可能です。
ついては当記事で、SQL Server2019におけるリンクサーバーの作成方法から使い方までを解説していきます。
- システム
エンジニア - SQL Serverでログインしているデータベース以外のデータを操作したいのですが、何か良い方法はありませんか?
- プロジェクト
リーダー - それならリンクサーバーを使うと良いですよ。リンクサーバーを使えば、ログインしているデータベースから別のデータベースへログイン不要でアクセスできるようになります。作成方法と使い方も簡単なので、これを機に学んでおきましょう。
SQL Serverでリンクサーバーを作成する
リンクサーバーを使うには、あらかじめSQL Server側で作成しておく必要があります。
実際にSSMSで作成していきましょう。今回は例として、同じSQL Serverでリンクサーバーを設けます。
まず、「サーバーオブジェクト」→「リンクサーバー」で右クリック、「新しいリンクサーバー」をクリックします。
次にリンクサーバーの情報をセットしていきます。
ページ選択の「全般」を開いてください。
基本的な入力および選択項目は以下のとおりです。
- ・リンクサーバー:作成するリンクサーバーの名称
- ・サーバーの種類:「その他のデータソース」を選択
- ・プロバイダー:「SQL Server Native Client 11.0」を選択
- ・製品名:リンクサーバーを作成(設置)するサーバー名(IPでも可)
- ・データソース:リンク(接続)するサーバー名(IPでも可)
※他データベースのリンクサーバーを作成する場合、リンクするデータベースに合わせて「プロバイダー」「製品名」「データソース」を入力してください。
続けて、左部ページ選択にて「セキュリティ」タブを開きます。
ここでログインの接続方法を指定しておきます。
今回はすでにログインしているローカルのSQL Serverへのリンクサーバーを作成しているため、「ログインの現在のセキュリティコンテキストを使用する」を選択。
通常は、下の「このセキュリティコンテキストを使用する」を選択して、以下項目を指定します。
- ・リモートログイン:ユーザー名
- ・パスワード:接続パスワード
以上で設定は終了、「OK」をクリック。
画面のように入力した名称のリンクサーバーが設定されました。
SQL ServerのTransact-SQLを使ってリンクサーバーを作成する
同じリンクサーバーをTransact-SQLを使って作成していきます。
sp_addlinkedserverでリンクサーバーを設定し、sp_addlinkedsrvloginでアクセスのための情報を設定します。
1
2
3
4
5
|
EXEC sp_addlinkedserver
@server = 'LINK_2',
@srvproduct ='localhost\SQLEXPRESS',
@datasrc = 'localhost\SQLEXPRESS',
@provider = 'SQLNCLI11',
|
- ・server:作成するリンクサーバーの名称
- ・srvproduct:リンクサーバーを作成(設置)するサーバー名(IPでも可)
- ・datasrc:リンク(接続)するサーバー名(IPでも可)
- ・provider:SQL Server Native Client 11.0(データベースに応じる)
1
2
3
4
5
|
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'LINK_2',
@useself = 'true',
@rmtuser = 'null',
@rmtpassword = 'null'
|
- ・rmtsrvname:リンクサーバー名を指定
- ・useself:基本はfalse(今回はローカル環境内Windows認証のためtrue)
- ・rmtuser:ユーザー名
- ・rmtpassword:ログインパスワード
ご覧の通り、新たなリンクサーバーが作成されました。
- システム
エンジニア - 本当に簡単に作成できるんですね。
- プロジェクト
リーダー - リンクするデータベースを指定して、ログイン名とパスワードを設定するだけですからね。これで複数のデータベースへ自由にアクセスできるようになります。
SQL Serverでログイン外のデータベースにアクセスするにはリンクサーバーを使おう
リンクサーバーは一度設定しておくだけで、好きなときに使えるようになります。データベースの入れ替え時など、データが複数に散らかってしまっているときは特に効果を発揮します。ここぞというときのために、SQL Serverのリンクサーバー機能を習得しておきましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


SQLServer新着案件New Job
-
蔦屋書新店オープンに関するアプリ開発/Oracle/東京都渋谷区/【WEB面談可】/在宅勤務
月給56万~59万円東京都渋谷区(神泉駅) -
資産運用会社向け残高管理システム運用保守/SQLServer/東京都中央区/【WEB面談可】
月給50万~60万円東京都中央区(銀座駅) -
資産運用会社向け残高管理システム開発のテスター/SQLServer/東京都中央区/【WEB面談可】
月給25万~35万円東京都中央区(銀座駅) -
放射線部門システムパッケージの運用保守/Oracle/東京都港区/【WEB面談可】
月給50万~60万円東京都港区(品川駅) -
放射線部門システムパッケージの開発のテスター/Oracle/東京都港区/【WEB面談可】
月給25万~35万円東京都港区(品川駅) -
営業フロントシステム運用保守/ASP.NET/東京都江東区/【WEB面談可】
月給50万~60万円東京都江東区(木場駅)