
SQL Server 2019でリンクサーバーを作成する方法
データベースを利用していると、ログインしているデータベースではなく、ほかのデータベースにアクセスしなければならない場合があります。そんなときにSQL Serverではリンクサーバーを使います。
リンクサーバーを使えば、色々なデータベースをリンク(接続)させることができ、アクセスできるデータベースが限定されなくなるのです。また、SQL Server以外のデータベースへもアクセスが可能です。
ついては当記事で、SQL Server2019におけるリンクサーバーの作成方法から使い方までを解説していきます。
- SE
- SQL Serverでログインしているデータベース以外のデータを操作したいのですが、何か良い方法はありませんか?
- PL
- それならリンクサーバーを使うと良いですよ。リンクサーバーを使えば、ログインしているデータベースから別のデータベースへログイン不要でアクセスできるようになります。作成方法と使い方も簡単なので、これを機に学んでおきましょう。
目次
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:ログインパスワード
ご覧の通り、新たなリンクサーバーが作成されました。
- SE
- 本当に簡単に作成できるんですね。
- PL
- リンクするデータベースを指定して、ログイン名とパスワードを設定するだけですからね。これで複数のデータベースへ自由にアクセスできるようになります。
SQL Serverでログイン外のデータベースにアクセスするにはリンクサーバーを使おう
リンクサーバーは一度設定しておくだけで、好きなときに使えるようになります。データベースの入れ替え時など、データが複数に散らかってしまっているときは特に効果を発揮します。ここぞというときのために、SQL Serverのリンクサーバー機能を習得しておきましょう。