Dynamic CRM 2011 Import Organization from different locale fails on SQLException

1

UPDATE : Issue solved, see answer below.

I'm struggling with a Dynamic CRM 2011 , when trying to import an existing organization - coming from a customer's Window Domain, not ours.

The Setup

Two servers.

  • One windows server 2008 r2 x64 Standard (locale fr-FR) for the Front-end, WebApp and all
  • One Windows server 2008 r2 x64 Enterprise (locale fr-FR) with SQL Server 2008 R2 Enterprise edition (locale fr-FR) for the Data and Report Tier

The imported organization came from an install with both Data Tier and App Tier on the same Windows 2008 Server (locale en-US)

The Web tier is at v5.0.9688.1045 , the Data Tier is at v.5.0.9688.1155 ( Update Rollup 2 )

The Error

The Database is recognized as a Dynamic CRM database, the users mapping proceeds, and the import process does most of the work. Most of because it seems to fail at the last moment.

19:42:49|   Info| Performing GrantServiceAccountAccess on SqlServerName dbserverwhere SqlServerMachineName=dbserver, reportServerUrl=http://dbserver/ReportServer
19:42:51|  Error| L’importation de l’organisation (Nom=XXXXX, ID=3d8ee9fb-6c80-e011-a99b-005056bc000a) a échoué avec l’exception :
System.Data.SqlClient.SqlException (0x80131904): L'ouverture de session a déjà un compte sous un nom d'utilisateur différent.

Thanks to unlocalize.com : SQLException : The login already has an account under a different user name.

 à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
 à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
 à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
 à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
 à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
 à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
 à System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
 à System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
 à Microsoft.Crm.CrmDbConnection.InternalExecuteWithRetry[TResult](Func`1 ExecuteMethod, IDbCommand command)
 à Microsoft.Crm.CrmDbConnection.InternalExecuteNonQuery(IDbCommand command, Boolean capturePerfTrace)
 à Microsoft.Crm.CrmDbConnection.ExecuteNonQuery(IDbCommand command, Boolean impersonate, Boolean capturePerfTrace)
 à Microsoft.Crm.Setup.Database.SharedDatabaseUtility.CreateUser(CrmDbConnection connection, String user, Boolean enableTrace, Boolean deleteExisting)
 à Microsoft.Crm.Setup.Database.DatabaseUtility.CreateUser(InstallDatabase database, String user, Boolean replaceExisting)
 à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccess(String user, Guid organizationId, Boolean replaceExistingUser)
 à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccess(String user, Guid organizationId)
 à Microsoft.Crm.Setup.Database.Helpers.GrantCrmReaderAccessToNetworkService(Guid organizationId)
 à Microsoft.Crm.Setup.Server.Utility.SqlUtility.GrantSrsServiceAccountAccess(String sqlMachineName, Uri rsUri, Guid organizationId)
 à Microsoft.Crm.Tools.Admin.GrantCrmDatabaseAccessAction.GrantServiceAccountAccess(Guid organizationId, String sqlServerMachineName, Uri reportingUrl)
 à Microsoft.Crm.Tools.Admin.ImportOrganizationInstaller.Import(Guid organizationId, String organizationUniqueName, String organizationFriendlyName, String sqlServerName, String databaseName, Uri reportServerUrl, ICollection`1 users, MultipleTenancy multipleTenancy, Int32 partitionNumber, Int32 fullTextSearchLocaleId)

What I already tried to do - but didn't work

  • Googling for the solution.
  • Deactivating and deleting the starter database.
  • Mapping the foreign domain AD users on completely new local domain AD user.

Thanks in advance for help

EDIT 1 : Added locale info, and corrected some inexact setup info

microsoft-dynamics-crm
asked on Server Fault Jun 6, 2011 by Johan Buret • edited Aug 28, 2018 by Arun Vinoth

1 Answer

4

I've just phoned with Microsoft Support, and with its help I could solve this issue.

The Bug :

The problem here was a localization issue. My fr-FR Dynamic CRM Install tried to add a SQL user called "AUTORITE NT\SERVICE RESEAU" on the imported database while a "NT AUTHORITY\NETWORK SERVICE" user already existed. Both are in fact the same login account, that's why i had this problem.

The solution:

the offender here is "NT AUTHORITY\NETWORK SERVICE" or its localized name

On the database you want to import

  • Delete offending schema
  • Delete offending user
  • Import again. It should work.
answered on Server Fault Jun 9, 2011 by Johan Buret • edited Jun 9, 2011 by Johan Buret

User contributions licensed under CC BY-SA 3.0