Community
Showing results for 
Search instead for 
Do you mean 
Reply

Login failed for user ACTACCESS on Windows Server 2012 Essentials

Accepted Solution Solved
Copper Contributor
Posts: 23
Country: United States
Accepted Solution

Login failed for user ACTACCESS on Windows Server 2012 Essentials

I'm trying to move/upgrade from an ACT 2011 Premium database on SBS 2003 to a new install of ACT 2013 Premium on Windows Server 2012 Essentials. There seems to be an issue with the SQL Server setup. When I try to initiate the database restore, I get an Act.Data.DatabaseAccessException error with the message "Login failed for user 'ACTACCESS'." (See full error below.)

 

I have already tried completely uninstalling ACT and SQL Server 2008 R2 Express and reinstalling, and I end up with the same issue.


If I run actdiag, I get the following error:

 

---------------------------

---------------------------
Could not connect to the SQL Server Instance.

Click OK to continue anyway, Cancel to close.
---------------------------
OK Cancel
---------------------------

 

... and in the main ACT! Diagnostics screen I see the same login error at the bottom.

 

I have also used SSMS to look at the server instance. There is a login for ACTUSER, but not for ACTACCESS, ACTADMIN, or any others.

 

I have tried a few variants of running SecurityCmdLnApp.exe as well as a "ResetSQL" script I got from the knowledgebase.

 

What should I do next?

 

 

 

Here is the full text of the error I get:

 

---------------------------
Sage ACT!
---------------------------
Act.Data.DatabaseAccessException: Failed to open a connection to the database. ---> Act.Data.ActDb.ActDbException: Login failed for user 'ACTACCESS'. ---> System.Data.SqlClient.SqlException: Login failed for user 'ACTACCESS'.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions)
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, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions)
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& connection)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Act.Data.ActDb.ActDbConnection.Open()
--- End of inner exception stack trace ---
at Act.Data.ActDb.ActDbConnection.Open()
at Act.Data.CommandProcessor.GetActiveConnection(String connectionString)
at Act.Data.CommandProcessor.Execute(Command command, IDataReader& dataReader)
--- End of inner exception stack trace ---
at Act.Data.CommandProcessor.Execute(Command command, IDataReader& dataReader)
at Act.Framework.Security.SessionManager.GetActAccessPassword(String host, ProviderType provider)
at Act.Framework.ActDatabase.ActDatabaseManager.ClassicRestoreDatabaseAs(String databaseName, String databaseHost, String databaseType, String newTargetFolder, String userLogOn, String userPassword, String zipFile, String zipPassword, ProgressEventHandler progressHandler, Boolean shareDatabase)
at Act.Framework.ActDatabase.ActDatabaseManager.RestoreDatabaseAs(String databaseName, String databaseHost, String databaseType, String newTargetFolder, String userLogOn, String userPassword, String zipFile, String zipPassword, SupplementalFileManager sfMgr, ProgressEventHandler progressHandler, Boolean shareDatabase)
at Act.Framework.ActFramework.RestoreDatabaseAs(String databaseName, String databaseHost, String databaseType, String newTargetFolder, String userLogOn, String userPassword, String zipFile, String zipPassword, ProgressEventHandler progressHandler, Boolean shareDatabase)
at Act.UI.MaintenanceManager.RestoreDatabaseAsTask.DoTask()
---------------------------
OK
---------------------------


Accepted Solutions
Solution
Accepted by topic author holisticdeveloper
‎09-25-2015 03:20 AM
Copper Contributor
Posts: 23
Country: United States

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

I found that the contributing factor was the password policy enforced by the Office 365 integration component for Windows Server 2012 Essentials. I was able to workaround it by pre-creating the SQL Server logins below using SQL Server Management Studio, choosing the option to not enforce the password policy. Then the "SecurityCmdLnTool" app was able to modify the passwords to whatever it needed them to.

 

Note: even though I had turned off the password policy using Group Policy, there was still an additional "password filter" that was the conflict. You can see what password filters are installed on your system using information from the following page:

http://msdn.microsoft.com/en-us/library/ms721766(VS.85).aspx#password_filter_functions

 

SQL accounts I created:

  • ACTADMIN
  • ACTOLEDB
  • ACTACCESS
  • ACTQUERY
  • ACTREADER
  • ACTREPORT
  • ACTSYNC
  • ACTUSER

View solution in original post


All Replies
Silver Super Contributor
Posts: 2,328
Country: USA

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

There is an option to reset the users in actdiag. Give that a try.

Stan

If you would like to get more out of ACT! you can find an ACT! Certified Consultant near you by going to:www.act.com/acc.
-------------------------------------------------------------------------------------
Stan Smith
ACT! Certified Consultant
ADS Programming Services, Inc.
(205) 222-1661
www.adsprogramming.com
www.actwebhosting.com
Click Here to Purchase Act!
Copper Contributor
Posts: 23
Country: United States

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

I found the option called "Set up ACT! SQL Users." It ran without an error, but I still have the same problem with restoring the database.

Solution
Accepted by topic author holisticdeveloper
‎09-25-2015 03:20 AM
Copper Contributor
Posts: 23
Country: United States

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

I found that the contributing factor was the password policy enforced by the Office 365 integration component for Windows Server 2012 Essentials. I was able to workaround it by pre-creating the SQL Server logins below using SQL Server Management Studio, choosing the option to not enforce the password policy. Then the "SecurityCmdLnTool" app was able to modify the passwords to whatever it needed them to.

 

Note: even though I had turned off the password policy using Group Policy, there was still an additional "password filter" that was the conflict. You can see what password filters are installed on your system using information from the following page:

http://msdn.microsoft.com/en-us/library/ms721766(VS.85).aspx#password_filter_functions

 

SQL accounts I created:

  • ACTADMIN
  • ACTOLEDB
  • ACTACCESS
  • ACTQUERY
  • ACTREADER
  • ACTREPORT
  • ACTSYNC
  • ACTUSER
Copper Super Contributor
Posts: 91
Country: USA

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

Hello,
I am facing the same issue. I tried to create these user but I still have an SQL error in the log: "Password did not match for the login provided".
I assume it has to do with your other comments "SecurityCmdLnTool" or "there was still an additional "password filter" that was the conflict".

Could you please elaborate on this? I have been stuck way to long on this..

Thank you!
Copper Contributor
Posts: 23
Country: United States

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

Hi Greg,

 

The SecurityCmdLnTool.exe file should exist in C:\Program Files (x86)\Act\Act for Windows\ directory. After creating the SQL accounts, just double-click this app. (Or, you might need to right-click and run as administrator -- I don't recall.) This should set the right passwords on the accounts I listed that will allow Act to run.

 

Regarding the password filter... The MSDN article I referenced indicates that all password filters are listed in the registry entry HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages. In my case, there is an item in this list for "pwdfilt" which is from the Office 365 plugin. I don't recall trying this, but I think if you temporarily removed "pwdfilt" from the Notification Packages entry, that the Act setup process would be able to properly create the accounts from the beginning.

 

Hope this helps -- it's been a while since I had to deal with this!

Copper Super Contributor
Posts: 91
Country: USA

Re: Login failed for user ACTACCESS on Windows Server 2012 Essentials

Thank you.
I had to run that tool after I installed SQL Server and Act. I closed Act, reset the SA password through SQL Management Studio and then run that tool. I did not have to touch to the password filter.
Thanks for getting back!