Дисфункциональный клон

Сервер базы данных был клонирован. Операционная система "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" Query Environment.

Тем не менее, при попытке запустить 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:" список, там также есть запись с именем "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 а со стороны машины, внутри одного домена?

1 ответ

Решение

На самом деле, да, это решило проблему после того, как правильные разрешения были установлены в нужном месте.

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

Надеюсь, это может помочь кому-то, кто может столкнуться с той же проблемой.

Другие вопросы по тегам