Why does the Admin account for MS SQL require the sysadmin role to bring the vault online?

We migrated Vault to MS SQL for a customer. The customer provided an account with the sysadmin role, so we chose the option where the M-Files system will do it itself: "Use an automatically generated login".

The migration went smoothly and the customer is working on the given Vault (adding and processing documents).

The customer removed the sysadmin role from the given login and everything was running smoothly until we tried to restart the service. At that moment, the system fails to connect to the vault:

Bringing the vault online failed.
This operation is not possible without system administrator rights. Please add a system administrator role to the user "ADMIN" for the duration of the operation.

DBConnectionKeepAlive.cpp, 578, Bringing the vault online failed. (0x80040120)

...

If we return the sysadmin role to the given login, everything will run smoothly.

This login has the "dbowner" role and according to the documentation it should be enough.

Where are we making a mistake? Does anyone have a similar experience?

Thanks in advance for your help.

Parents
  • The solution, as always, has been found. Wink

    Do not use the "Use an automatically generated login" option unless you want to keep the sysadmin role forever for the admin user.

    Apparently, if you use this option, the system will try to do some operations that require sysadmin rights every time the service is restarted. Cry

    If you create a regular user in SQL and specify the "Use an existing login" option, the admin will be fine with rights to the db (dbowner) and will not need any rights to the SQL server (role = public)

Reply
  • The solution, as always, has been found. Wink

    Do not use the "Use an automatically generated login" option unless you want to keep the sysadmin role forever for the admin user.

    Apparently, if you use this option, the system will try to do some operations that require sysadmin rights every time the service is restarted. Cry

    If you create a regular user in SQL and specify the "Use an existing login" option, the admin will be fine with rights to the db (dbowner) and will not need any rights to the SQL server (role = public)

Children
No Data