- PR -

MSSQL間のデータ移行に関して

1
投稿者投稿内容
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-11-11 20:55
現在
MSDEのカタログAをMSSQLに移し変えようとしています。
方法
1.MSDEのカタログAをosqlでユーザsaによりexport
2.MSSQLでカタログ作成
3.MSSQLでユーザsaによりimport

その結果をEnterpriseManagerでみたところ
 カタログA 配下のユーザBのログイン名がなし(MSDEではC とついてました) になってしまいます。
 またカタログAのオブジェクトは全てユーザBの所有物になっていることもあったりで、どうしてもログイン名が
 必要になります。

なぜユーザBのログイン名がなしになるのか分かりません。
何度試してもうまくいかず 困っております。
どなたか お力貸していただけないでしょうか。
matu_tak
会議室デビュー日: 2003/02/06
投稿数: 13
投稿日時: 2005-11-12 02:00
> なぜユーザBのログイン名がなしになるのか分かりません。
>
おそらく、ログインアカウントは SQL Server 認証用ですよね。
ユーザーとログインアカウントは、ログインアカウントの SID で
マッピングされているので、インスタンスが違うと、マッピングが
無効になってしまい、「ログイン名がなし」 の ”不明なユーザー”
という扱いになります。

不明なユーザーをリストアップするには、

USE データベース名
EXEC sp_change_users_login 'Report'

と実行します。
不明なユーザーの SID マッピングを修復するには、

USE データベース名
EXEC sp_change_users_login 'Update_One','DBユーザー名','ログイン名'

と実行します。
ただ、ユーザー数が多い場合は、1人1人に対してこれを実行するには
とっても面倒になるので、sp_help_revlogin というストアドを使って
一括でログインを移動させてしまうと便利です。

同じ SID のログインアカウント作成(sp_help_revlogin)
http://blogs.sqlpassj.org/matu_tak/archive/2004/05/30/2527.aspx
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-11-14 19:01
matu_takさん>
ありがとうございます。
sp_change_users_login を実行したところ解決することができました。

しかし、クエリアナライザからデータリンクを使用して、
接続しようとすると接続ができません。
(Enterprise Managerからも駄目でした)
データリンクには以下の点を設定しました。

照合順序互換 ON
データアクセス ON
RPC ON
RPC出力 ON
リモート照合順序 ON

ログインの現在のセキュリティコンテキストを使用する。


もしよろしければアドバイスいただけないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)