MSSQLSERVER_18483

適用対象: はいSQL Server (サポートされているすべてのバージョン)

詳細

属性
製品名 SQL Server
イベント ID 18483
イベント ソース MSSQLSERVER
コンポーネント SQLEngine
シンボル名 REMLOGIN_INVALID_USER
メッセージ テキスト サーバー '%.ls' に接続できませんでした。'%. ls' はそのサーバーでリモート ログインとして定義されていません。 正しいログイン名を指定していることを確認してください。 %.*ls。

説明

このエラーは、SQL インスタンスが最初にインストールされた別のコンピューターのハード ディスク イメージを使用して復元されたシステムで、レプリケーション ディストリビューターを構成しようとしたときに発生します。 次のようなエラー メッセージがユーザーに報告されます。

SQL Server Management Studio で、'<Server><Instance>' を '<Server><Instance>' のディストリビューターとして構成できませんでした。 エラー 18483:'distributor_admin' がサーバーでリモート ログインとして定義されていないので、サーバー '<Server><Instance>' に接続できませんでした。 正しいログイン名を指定していることを確認してください。 %.*ls。

原因

SQL Server がインストールされている別のコンピューターのハード ディスク イメージから SQL Server を展開すると、イメージが作成されたコンピューターのネットワーク名は新しいインストールに保持されます。 ネットワーク名が正しくないと、レプリケーション ディストリビューターの構成に失敗します。 SQL Server のインストール後にコンピューターの名前を変更した場合、同じ問題が発生します。

ユーザー アクション

この問題を回避するには、SQL Server サーバー名をコンピューターの正しいネットワーク名に置き換えます。 これを行うには、次のステップに従います。

  1. ディスク イメージから SQL Server を展開したコンピューターにログオンし、SSMS で次の Transact-SQL ステートメントを実行します。

    -- Use the Master database
    USE master
    GO
    
    -- Declare local variables
    DECLARE @serverproperty_servername varchar(100),
    @servername varchar(100);
    
    -- Get the value returned by the SERVERPROPERTY system function
    SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'));
    
    -- Get the value returned by @@SERVERNAME global variable
    SELECT @servername = CONVERT(varchar(100), @@SERVERNAME);
    
    -- Drop the server with incorrect name
    EXEC sp_dropserver @server=@servername;
    
    -- Add the correct server as a local server
    EXEC sp_addserver @server=@serverproperty_servername, @local='local';
    
  2. SQL Server を実行しているコンピューターを再起動します。

  3. コンピューターの SQL Server 名とネットワーク名が同じであることを確認するには、次の Transact-SQL ステートメントを実行します。

    SELECT @@SERVERNAME, SERVERPROPERTY('ServerName');
    

説明

SQL Server で @@SERVERNAME グローバル変数または SERVERPROPERTY(' ServerName ') 関数を使用して、SQL Server が実行されているコンピューターのネットワーク名を見つけることができます。 SERVERPROPERTY 関数の ServerName プロパティによって、コンピューターと SQL Server サービスを再起動したときに、コンピューターのネットワーク名の変更が自動的に報告されます。 @@SERVERNAME グローバル変数には、SQL Server 名が手動でリセットされるまで、元の SQL Server コンピューター名が保持されます。

問題を再現する手順

ディスク イメージから SQL Server を展開したコンピューターで、次の手順を実行します。

  1. Management Studioを起動します。

  2. オブジェクト エクスプローラー で、SQL Server インスタンス名を展開します。

  3. レプリケーション フォルダーを右クリックし、 [Configure distribution Replication](ディストリビューション レプリケーションの構成) をクリックしてから、 [Configure Publishing, Subscribers, and Distribution](パブリッシング、サブスクライバー、およびディストリビューションの構成) をクリックします。

  4. [ディストリビューションの構成ウィザード] ダイアログ ボックスで、 [次へ] をクリックします。

  5. [ディストリビューター] ダイアログ ボックスで、'<Server><Instance>' をクリックして選択すると、それが独自のディストリビューターとして機能し、SQL Server によってディストリビューション データベースとログ ラジオ ボタンが作成されます。その後、 [次へ] をクリックします。

  6. [SQL Server エージェントの起動] ダイアログ ボックスで、 [次へ] をクリックします。

  7. [スナップショット フォルダー] ダイアログ ボックスで、 [次へ] をクリックします。

    注意

    スナップショット フォルダーのパスを確認するメッセージが表示された場合は、 [はい] をクリックします。

  8. [ディストリビューション データべース] ダイアログ ボックスで、 [次へ] をクリックします。

  9. [パブリッシャー] ダイアログ ボックスで、 [次へ] をクリックします。

  10. [ウィザードのアクション] ダイアログ ボックスで、 [次へ] をクリックします。

  11. [ウィザードの完了] ダイアログ ボックスで、 [完了] をクリックします。

関連項目