Symptoms

The adTempus service fails to start. In the Application log in the Event Viewer, adTempus reports an error with Event ID 42:

The adTempus service cannot be started due to a database problem. See www.arcanadev.com/go/1993 for database troubleshooting information. A database error occurred while processing the request. More information may be available in the Alerts log or in the Windows Event Viewer on the adTempus server. [ADT005311E]

 In the adTempus diagnostic log, one of the following errors is reported:

SQL Server error 18456, state 1: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
SQL Server error 18456, state 1: Login failed for user 'DOMAIN\COMPUTERNAME$'

Cause

This error occurs because adTempus is configured to use a remote SQL Server instance but the Local System account that the adTempus service runs under does not have permission to connect to SQL Server.

Resolution

You must either:

1. Configure SQL Server to allow explicit authentication using a SQL Server user ID and password, then configure a login for adTempus to use.

2. Create a login in SQL Server for the adTempus machine account.

Explicit Authentication

To use explicit authentication, see Enabling SQL Server Security for information on how to reconfigure SQL Server to support this option.

Once SQL Server has been configured, create a login in SQL Server for adTempus to use. The login should be a member of the following roles for the adTempus database:

  • db_datareader
  • db_datawriter
  • db_backupoperator

Once the login has been created, update the adTempus database configuration using the Registry Editor:

  1. Go to key "HKEY_LOCAL_MACHINE\Software\Arcana Development\adTempus\Instances\Default\Database".
  2. Create a new STRING value named "userID" and set it to the SQL Server user ID.
  3. Create a new STRING value named "password" and set it to the SQL Server password.

You should now be able to start the adTempus service.

Create Login for adTempus Machine Account

If you do not want to configure SQL Server to allow explicit security, you must create a login in SQL Server for the machine account of the computer where the adTempus service is installed. To do this, modify this script as follows:

  • Replace "DOMAIN" with the name of the domain that the adTempus computer belongs to.
  • Replace "COMPUTERNAME" with the name of the computer where adTempus is installed.
  • Replace "DATABASENAME" with the name of the database that adTempus is using.

Execute the script against your database server to create the login.

use [master]
GO

if not exists (select * from master.dbo.syslogins where loginname = N'DOMAIN\COMPUTERNAME$')
CREATE LOGIN [DOMAIN\COMPUTERNAME$] FROM WINDOWS with DEFAULT_DATABASE=[DATABASENAME]
go

use [DATABASENAME]
GO

if not exists (select * from dbo.sysusers where name = N'DOMAIN\COMPUTERNAME$' and uid < 16382)
	CREATE USER [DOMAIN\COMPUTERNAME$] FOR LOGIN [DOMAIN\COMPUTERNAME$] WITH DEFAULT_SCHEMA=[dbo]
GO

exec sp_addrolemember N'db_backupoperator', N'DOMAIN\COMPUTERNAME$'
GO

exec sp_addrolemember N'db_datareader', N'DOMAIN\COMPUTERNAME$'
GO

exec sp_addrolemember N'db_datawriter', N'DOMAIN\COMPUTERNAME$'
GO

You should now be able to start the adTempus service.

References

Refer to the Using a Standalone SQL Server Instance topic in the adTempus installation guide for more information on supported scenarios for database connections and authentication.