SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Contained Databases の Contained User を使用した複数 DB へのクエリ実行を検証

leave a comment

Contained Databases の Contained User (DB 内にログイン可能なユーザーを作成) を使用した場合、複数 DB に対してクエリが実行できるかが気になったので検証してみました。

先に検証結果を書いてしまうと、軽く試してみたところではうまくできませんでした…。

■Contained User を使用して複数 DB にクエリを実行


Contained Databases を使用しない場合、複数 DB にクエリを実行するときの構成は以下のようになるかと思います。

image

一つのログインを複数のデータベースにユーザーとしてマッピングすることが可能ですので、そのログインがユーザーとして設定されるデータベースにアクセスが可能となります。

また、同じログインを使用しているため各ユーザーのログインで使用している SID も同じものとなります。

Contained Databases の Contained User を使用した場合は以下のようになります。
image

Contained User の場合、各データベース内でユーザー情報が完結した形になりますので、同一のユーザー名で作成しても同姓同名の他人扱いとなり、一つのログインで複数のデータベースを操作するといったことができないようです。

実際に、ユーザーデータベース1/2に同じ名称の Contained User を作成して、二つのデータベースを JOIN するクエリを実行してみたところ以下のようなエラーとなってしまいました。
image

軽く調べてみたところこのような情報が。

SQL Server v.Next (Denali) : More on contained databases and "contained users"

Contained User としてログインを作成した場合は単一のデータベースの操作に限定されてしまうのですかね??

歯切れが悪いですが、まずは検証した範囲で投稿を残してみました。
複数のデータベースを操作できる方法があったら再度検証してみたいと思います。

Share

Written by Masayuki.Ozawa

9月 7th, 2011 at 8:09 pm

Posted in SQL Server

Tagged with , ,

Leave a Reply