We have a process which imports data from a downloaded MDB file to a SQL database. The import is performed by software supplied by the vendor of the applicaction software that used the database. The import uses a SQL user created just for the import.

On the production server, this user is in the sysadmin Server Role. The process runs successfully, but I think sysadmin is too many rights.

Using a non-production copy, I am trying to determine the minimum rights needed to be granted to the SQL user for the process to run, Although the SQL user is now in the db_owner database role for the database that needs the import, I still get an error which looks like a permissions:

Import FailedTable or indexed view '<table name>' does not have a full-text index or user does not have permission to perform this action.

Is there a good way to determine what are the minimum rights needed to perform a an action - particularly when you don't have access to read the actual SQL that is run?

But you do have access to read the SQL that is run. You can setup an Extended Events session or a Server-side Trace to capture all SQL statements issued against the server when you run the process in non-prod. You could do this while the process runs as a sysadmin to see all commands, or run it as only a db_owner where the last (or close to the last) statement to start will be the one that causes the permissions error

__________________________________________________________________________________________________There are no special teachers of virtue, because virtue is taught by the whole community. --Plato