When running through the SIM database configuration and changing the Database Configuration, you are attempting to change from the current Application Identity account to use a SQL Authentication. When it gets to Verifying the database connection you get an error similar to the following:
Failed to impersonate user 'example\svc-itmsappid' for database validation. Try again or contact support if this problem persists.
The account used for the Application Identity and was used to install the product/create the database was 'example\svc-itmsappid' and is not the SQL Authentication account that you are trying to switch to.
The logs contain these messages:
Message 1:
Connection closed: Data Source=sqlserver-01;Initial Catalog=master;Integrated Security=False;User ID=svc-itmssql;Pooling=True;Max Pool Size=400;Connect Timeout=30;Application Name=SymantecInstallationManager.exe-----------------------------------------------------------------------------------------------------Date: 7/7/2022 9:41:26 AM, Tick Count: 58364671 (16:12:44.6710000), Size: 518 BProcess: SymantecInstallationManager (4828), Thread ID: 8, Module: SymantecInstallationManager.exePriority: 8, Source: Symantec.Installation.InstallClasses.DatabaseContext.Dispose
Message 2:
Exception occurred while impersonating userFailed to open database connection. [Symantec.Installation.Helpers.DatabaseNotAccessibleException @ SymantecInstallationManager] at Symantec.Installation.Helpers.DatabaseManager.OpenConnection(String serverName, String catalog, String loginUserName, SecureString loginPassword, Boolean useIntegratedSecurity, Int32 retries) at Symantec.Installation.InstallClasses.SQLAuth.VerifyDBPermissions(String dbname, Boolean createNew, Int32 timeout, Boolean& bTempdbAutogrow)
Cannot open user default database. Login failed.Login failed for user 'svc-itmssql'. [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider] at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Symantec.Installation.Helpers.DatabaseManager.OpenConnection(String serverName, String catalog, String loginUserName, SecureString loginPassword, Boolean useIntegratedSecurity, Int32 retries)
SQL Exception details: code=4064, line=65536
Exception logged from: at Symantec.Installation.Logging.LogActivity.ReportException(Int32 severity, String strMessage, String category, Exception exception, String footer) at Symantec.Installation.Logging.LogActivity.ReportException(String strMessage, String category, Exception exception) at Symantec.Installation.InstallClasses.SQLAuth.VerifyDBPermissions(String dbname, Boolean createNew, Int32 timeout, Boolean& bTempdbAutogrow) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Symantec.Installation.WPF.CancelProxy.Invoke(IMessage msg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Symantec.Installation.InstallClasses.SQLAuth.VerifyDBPermissions(String dbname, Boolean createNew, Int32 timeout, Boolean& bTempdbAutogrow) at Symantec.Installation.Model.DBSettingsManager.VerifyDatabaseSettings(SettingsToValidate settings, ServerValidationInfo& info) at Symantec.Installation.Model.DBSettingsManager.VerifySettings(SettingsToValidate settings, Version& existingDBVersion, Boolean& emptyDB, List`1& licenses) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Symantec.Installation.WPF.CancelProxy.Invoke(IMessage msg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Symantec.Installation.Model.DBSettingsManager.VerifySettings(SettingsToValidate settings, Version& existingDBVersion, Boolean& emptyDB, List`1& licenses) at Symantec.Installation.ViewModel.DBSettingsViewModel.<>c__DisplayClass111_0.<Next>b__1() at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ThreadPoolWorkQueue.Dispatch()
-----------------------------------------------------------------------------------------------------Date: 7/7/2022 9:42:13 AM, Tick Count: 58412234 (16:13:32.2340000), Size: 6.65 KBProcess: SymantecInstallationManager (4828), Thread ID: 15, Module: SymantecInstallationManager.exePriority: 1, Source: Symantec.Installation.InstallClasses.SQLAuth.VerifyDBPermissions
Message 3:
VerifyDatabaseSettings - AuthenticateCredentials/VerifyDBPermissions failed: Failed to impersonate user 'example\svc-itmsappid' for database validation. Try again or contact support if this problem persists.-----------------------------------------------------------------------------------------------------Date: 7/7/2022 9:42:13 AM, Tick Count: 58412234 (16:13:32.2340000), Size: 520 BProcess: SymantecInstallationManager (4828), Thread ID: 15, Module: SymantecInstallationManager.exePriority: 1, Source: Symantec.Installation.Model.DBSettingsManager.VerifyDatabaseSettings
ITMS 8.x
The new account was not set properly in the SQL Server to point to the default database.
Check under SQL Management Studio that the desired account has actually a designated default database:
Usually "Master" is the default database but if this field is blank, select your SMP server's database as shown above.