都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

そういえば、リンクサーバって Microsoft Azure SQL Database に対して有効なのかなと思い、実験してみた

 リンクサーバって SQL Database にも有効なのかなと疑問に思ったので、試してみました。リンクサーバが SQL Database に使えたら、少しおしゃれかなと。多分、SQL Server 認証みたいに接続すればよいかと思われます。

 まずは、SQL Database のダッシュボードから情報を採取します。接続文字列の表示をクリックし、ODBC の接続文字列からサーバなどの情報を抽出します。

f:id:koogucc11:20140616203249p:plain

 リンクサーバを作成するには、下記のストアドプロシージャを使用します。

sp_addlinkedserver @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] 
     [ , [ @provider= ] 'provider_name' ]
     [ , [ @datasrc= ] 'data_source' ]
     [ , [ @location= ] 'location' ]
     [ , [ @provstr= ] 'provider_string' ]
     [ , [ @catalog= ] 'catalog' ]
EXEC sp_addlinkedserver @server = 'LinkedServerTest',
@provider = 'SQLNCLI11',
@datasrc = 'tcp:xyzxyz.database.windows.net,1433';

f:id:koogucc11:20140616234930p:plain

 下図のように LinkedServerTest というノードが生成されます。

f:id:koogucc11:20140616233430p:plain

 リンクサーバとログインを紐付けるには、下記のストアドプロシージャを使用します。

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
     [ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ]
     [ , [ @locallogin = ] 'locallogin' ]
     [ , [ @rmtuser = ] 'rmtuser' ]
     [ , [ @rmtpassword = ] 'rmtpassword' ]
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'LinkedServerTest',
@useself = 'FALSE',
@rmtuser = 'ユーザーID@xyzxyz',
@rmtpassword = 'パスワード';

f:id:koogucc11:20140616235601p:plain

 下図のように LinkedServerTest ノード配下に、AdventureWorks のノードが表示されます。おお、いけそうです。

f:id:koogucc11:20140616235758p:plain

 うう、しかし....

f:id:koogucc11:20140617000026p:plain

 SQL Database は、リンクサーバをサポートしてないようです。残念....

 

SQL Database はまだまだ勉強せねば...

Microsoft Azure SQL Database Step by Step (Step by Step Developer)

Microsoft Azure SQL Database Step by Step (Step by Step Developer)