My initial approach was to update the Windows services and the IIS app to use the domain user, replacing the network service that they were initially configured to use and then update permissions on the database.
Knowing that handling database permissions could prove challenging, I decided to be proactive and backed up each database to safeguard against any missteps.
My original plan was to observe the permissions assigned to the current database owner user, add my service account to the database and, and assign them identical permissions. Considering that Milestone uses about five databases and Boring utilizes one, it seemed like a reasonable approach.
Despite my careful planning, this approach did not yield the expected results. The Milestone services would not start. When I dug deeper, I found that the DBO user still displayed the old user, not the one I had just added.
To rectify this, I intended to switch the old user with the new one using an ‘ALTER’ command that I found during a Google search. However, when I tried to execute this, SQL Server informed me that the user already existed and couldn’t be altered.
Stuck in this loop, I attempted to remove the newly added user, but SQL Server wouldn’t permit this either. At this point, I restored the old database, effectively removing the new domain user I had attempted to add. Using the ‘ALTER’ command again, I managed to change the DBO owner to the new domain user – a promising development.
I then re-registered the services per the instructions. During this process, an error emerged stating not all services were registered. It wasn’t clear which ones were causing the issue. Despite multiple attempts to re-register, the error persisted.
At this point, I took the manual route: I started each service individually and then re-ran the re-register command. This time, everything fell into place, and the solution worked as expected.
The path to this solution wasn’t exactly straightforward, but sometimes you have to traverse the long road to truly understand the terrain. In the end, I managed to configure Milestone XProtect to use an Active Directory – and learned a thing or two along the way. I hope that sharing my journey can help you avoid some of these detours.