ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →AWS RDS for SQL Server にリンクサーバーを作成する方法
宮本航太
こんにちは!CData でテクニカルサポートをしている宮本です。
皆さんは AWS RDS for SQL Server に対して、 SSMS の「新しいリンクサーバー」をクリックしたとき、
このようなエラーが発生したことはありませんか?
「要求されたダイアログを表示できません。(SqlMgmt)」
「必要な操作を完了できませんでした。この操作を実行するには、sysadmin ロールのメンバーでなければなりません。 (SqlManagerUI)」
以前試したときに遭遇したものの、あまり情報がなく諦めてしまっていたのですが、RDS の場合はストアドプロシージャで作成できることがAWS の公式ページに書かれていました。
aws.amazon.com
今回はその 公式ページに書かれている内容を試して、実際に RDS にリンクサーバーを作成してみたいと思います。
SQL Server(EC2またはオンプレミス)からRDS SQL Server
まずはRDS の DB をリンクサーバーとするパターンです。
RDS のテーブルを EC2 やローカルにインストールした SQL Server の場合は、特に難しいことはなく、リンクサーバーを作成する側(今回はローカル)でサーバーオブジェクト --> リンクサーバーと進み、右クリックして「新しいリンクサーバー」から作成できます。
データソースに RDS のURL を指定し、
RDS のログイン情報をセキュリティページで指定します。
作成後は RDS のテーブルがローカル側 SQL Server のリンクサーバーとして表示されます。これでローカル側からも自由に RDS のテーブルにアクセスできるようになります。
RDS SQLServerからSQLServer(EC2またはオンプレミス)
では冒頭にもお伝えしたエラーが発生するパターンの、RDS 側にリンクサーバーを作成する方法についてです。
この場合は、先ほどのようなボタンをポチポチと押して作成するのではなく、ストアドプロシージャを実行して作成します。
公式ではこのストアドが記載されていましたので、
-- Using the DNS name for the remote server EXEC master.dbo.sp_addlinkedserver @server = N’REPLTest2′, @srvproduct=N”, @provider=N’SQLNCLI’, @datasrc=N’repltest2.datacenter.mycompany.com′; EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N’REPLTest2′,@useself=N’False‘,@locallogin=NULL,@rmtuser=N'<username>’,@rmtpassword=‘<password>’; GO
それに沿って設定値を変更して実行しました。
-- Using the DNS name for the remote server EXEC master.dbo.sp_addlinkedserver @server = 'localdb_link', @srvproduct='', @provider='SQLNCLI', @datasrc='接続先'; EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname='localdb_link', @useself='FALSE', @locallogin=NULL, @rmtuser='admin', @rmtpassword='xxxxxxxxxxx'; GO
そうしますと、別の SQL Server のテーブルが RDS SQL Server のリンクサーバーに表示されるようになりました。
SELECT や UPDATE をしてみる
少し気を付けることころはテーブル名の指定部分ですね。
「リンクサーバー名.データベース名.スキーマ名.テーブル名 」
の順で指定する必要があります。
テーブル名さえ気を付ければ、UPDATE も INSERT も DELETE もできるようになりますね。
UPDATE 後。
おわりに
今回は SQL Server 同士でリンクサーバーを構成してみましたが、CData では以下のような構成をとることで、 AWS RDS for SQL Server のリンクサーバーに SaaS データを連携させることができます。
CData ODBC Driver の SQL Gateway を使った方法
www.cdatablog.jp
CData Connet (データハブサービス) を使った方法
www.cdatablog.jp
どちらもトライアル利用が可能です。ぜひお試しくださいください。
- ODBC Driver
CData Software Japan - ODBC Drivers
- CData Connect
CData Connect | ユニバーサルなデータ接続プラットフォーム