0

データベース サーバーが複製されました。オペレーティング システムは"Microsoft Windows XP Professional Version 2002 Service Pack 3"です。クエリ環境は"Microsoft SQL Server 2008 Management Studio 10.0.4000.0".

クローニング後、以下の挙動が確認されました。マシンの外部から同じドメイン内に接続しようとすると、次のエラー メッセージが表示される場合があります"Cannot generate SSPI context. (.Net SqlClient Data Provider)"

マシン内から、"Microsoft SQL Server 2008 Management Studio"クエリ環境を使用してデータベース サーバーに接続できます。

ただし、SQLCmdコマンド ライン ツールを実行しようとすると、次のエラーが表示されます。

C:\<Directory>>SQLCmd -S DBA2\<Instance> -i C:\<Directory>\<FileName>.SQL
HResult 0x80090322, Level 16, State 1
SQL Server Network Interfaces: The target principal name is incorrect.
Sqlcmd: Error: Microsoft SQL Server Native Client 10.0 : Cannot generate SSPI context.

ServicePrincipalNames次のように設定されます。

C:\PROGRA~1\SUPPOR~1>setspn DBA2
Registered ServicePrincipalNames for CN=DBA2,CN=Computers,DC=<Company>,DC=com:
VProRecovery Backup Exec System Recovery Agent 7.0/DBA2.<Company>.com
HOST/DBA2
HOST/DBA2.<Company>.com

"C:\PROGRA~1\SUPPOR~1\ADSIEDIT.MSC"Microsoft Windows XP Professional コンパクト ディスクからサポート ツールを実行すると、"ADSI Edit \ Domain [<Site>.<Company>.com] \ DC=<Company>,DC=com"パスの下に"CN=Computers"リーフが表示されます。その"Properties"ダイアログ ボックスの"Security"タブ内の"Group or user names:"リストの下に、"SELF"エントリがあります。ボタンを押す"Advanced"と、"Advanced Security Settings for Computers"ダイアログ ボックスが生成されます。"Permissions"タブのリストの下には"Permission entries:"、 Name のエントリもあり"SELF"ます。ボタンを押す"Edit..."と、"Permission Entry for Computers"ダイアログボックスが表示されます。その"Properties"タブの"Permissions:"リストには、"Read ServicePrincipalName"権限と権限のエントリはありません"Write ServicePrincipalName"

これが、次のコマンドが失敗する理由である可能性があります。

C:\PROGRA~1\SUPPOR~1>setspn -r DBA2
Registering ServicePrincipalNames for CN=DBA2,CN=Computers,DC=<Company>,DC=com
HOST/DBA2.<Company>
HOST/DBA2
Failed to assign SPN to account 'CN=DBA2,CN=Computers,DC=<Company>,DC=com', 0x2098

ServicePrincipalName複製されたデータベース サーバーでをリセットするためのアクセス許可が設定されていたとしてもSQLCmd、同じドメイン内で、マシンの外部と外部の両方からの接続を解決できますか?

4

1 に答える 1

0

実際、はい、適切なアクセス許可が適切な場所に設定された後、問題は解決しました。

次のようServicePrincipalNamesに、ユーザーに設定する必要がありました。SQL

C:\PROGRA~1\SUPPOR~1>setspn -a mssqlsvc/dba2:1433 <Company>\<UserName>
Registering ServicePrincipalNames for CN=<UserName>,OU=Reporting Security,OU=Security Groups,OU=Romania,DC=<Company>,DC=com
        mssqlsvc/dba2:1433
Updated object

C:\PROGRA~1\SUPPOR~1>setspn -a mssqlsvc/dba2.<Company>.com:1433 <Company>\<UserName>
Registering ServicePrincipalNames for CN=<UserName>,OU=Reporting Security,OU=Security Groups,OU=Romania,DC=<Company>,DC=com
        mssqlsvc/dba2.<Company>.com:1433
Updated object

C:\PROGRA~1\SUPPOR~1>setspn -l dba2
Registered ServicePrincipalNames for CN=DBA2,OU=Romania Machines,OU=Romania,DC=<Company>,DC=com:
    VProRecovery Backup Exec System Recovery Agent 7.0/DBA2.<Company>.com
    HOST/DBA2
    HOST/DBA2.<Company>.com

C:\PROGRA~1\SUPPOR~1>setspn -l <UserName>
Registered ServicePrincipalNames for CN=<UserName>,OU=Reporting Security,OU=Security Groups,OU=Romania,DC=<Company>,DC=com:
    MSSQLSvc/DBA2.<Company>.com:<Company>_RO
    mssqlsvc/dba2.<Company>.com:1433
    mssqlsvc/dba2:1433

うまくいけば、これは同じ問題に遭遇する可能性のある誰かを助けるかもしれません.

于 2015-02-10T12:29:46.203 に答える