unknown
2007-08-22 13:10:01 UTC
山岸です。お世話になります。
Windows 2000 SP4,
SQL Server 2000 Develper Edition SP4(8.00.2187)
2台のPCで同一データベース名で内容が完全に同じものを作成しようとしています。上記とは別のWindowsXP上のSQL Server 2000
Desktop Engine
で作成したデータベースのフルバックアップを、上記の既に同一データベース名として作成済みのデータベースに復元して同じ内容にしようとしました。
上記PCではEnterprise Maneger を使用してサーバーログインの設定と目的とするデータベースへのアクセス権を予め与えておきます。
そこで、Desktop Engine で作成したバックアップを復元した結果、Enterprise Maneger
上で、目的とする「データベース」の「ユーザー」-「プロパティー」-「権限」はバックアップしたものと同じ権限が設定されていますが、サーバーの「セキュリティー」-「ログイン」-「プロパティー」-「データベースアクセス」では予め与えておいた権限が削除されています。ここで、権限設定を追加しようとすると、「エラー21002:[SQL-DMO]
ユーザー****は既に存在しています。」となって権限の再設定が不可能で、結果としてこのデータベースにはSQL Server 認証では接続出来ません。
これを解決するには、目的とする「データベース」で「ユーザー」を一旦削除した後、サーバーの「セキュリティー」-「ログイン」-「プロパティー」-「データベースアクセス」で権限の再設定を行いますが、次の問題があります。即ち:データベースログイン別にデータベースオブジェクトに対する権限を細かく(SELECT,
UPDATE, INSERT, , )規定している場合は、目的とするデータベース上で権限の再設定を行わねばならず極めて不便です。
データベースの復元を行ってもサーバーのデータベースアクセス権を削除されない方法はないのでしょうか。
Windows 2000 SP4,
SQL Server 2000 Develper Edition SP4(8.00.2187)
2台のPCで同一データベース名で内容が完全に同じものを作成しようとしています。上記とは別のWindowsXP上のSQL Server 2000
Desktop Engine
で作成したデータベースのフルバックアップを、上記の既に同一データベース名として作成済みのデータベースに復元して同じ内容にしようとしました。
上記PCではEnterprise Maneger を使用してサーバーログインの設定と目的とするデータベースへのアクセス権を予め与えておきます。
そこで、Desktop Engine で作成したバックアップを復元した結果、Enterprise Maneger
上で、目的とする「データベース」の「ユーザー」-「プロパティー」-「権限」はバックアップしたものと同じ権限が設定されていますが、サーバーの「セキュリティー」-「ログイン」-「プロパティー」-「データベースアクセス」では予め与えておいた権限が削除されています。ここで、権限設定を追加しようとすると、「エラー21002:[SQL-DMO]
ユーザー****は既に存在しています。」となって権限の再設定が不可能で、結果としてこのデータベースにはSQL Server 認証では接続出来ません。
これを解決するには、目的とする「データベース」で「ユーザー」を一旦削除した後、サーバーの「セキュリティー」-「ログイン」-「プロパティー」-「データベースアクセス」で権限の再設定を行いますが、次の問題があります。即ち:データベースログイン別にデータベースオブジェクトに対する権限を細かく(SELECT,
UPDATE, INSERT, , )規定している場合は、目的とするデータベース上で権限の再設定を行わねばならず極めて不便です。
データベースの復元を行ってもサーバーのデータベースアクセス権を削除されない方法はないのでしょうか。
--
山岸
山岸