Microsoft Dynamics Nav 2009

Synchronizes the information in the Microsoft Dynamics NAV security system with the Microsoft SQL Server security system.


To run this function, you must have the permissions that are described in the following table.

Location Role

SQL Server

securityadmin or sysadmin


db_owner or db_securityadmin

Microsoft Dynamics NAV


To run this function, the license that is uploaded to the server must contain permissions for the Tools/Security granule. This is the same granule that is required if you synchronize logins from the Classic client.

If you are running with the Standard Security Model, then automatic synchronization occurs when you insert, modify, or delete a Windows login. If you are running with the Enhanced Security Model, then no automatic synchronization occurs, and you must manually synchronize security information.

Running this function has the same effect as clicking Synchronize All Logins in the Classic client. On the Tools menu, point to Security, and then click Synchronize All Logins.

You use this function only from the RoleTailored client or from Web services. If you call this function from the Classic client, then no action occurs.

End-user permissions do not change until the RoleTailored client is restarted.

Before the logins are synchronized, this function verifies that there are no active database transactions in the current session that have not been committed. If there are transactions that have not been committed, then the SYNCHRONIZEALLLOGINS function fails with the following error message:

C/AL function < function name > is not allowed in write transactions. Use the COMMIT function to save the changes before this call, or structure the code differently.

Open transactions that are in a separate session and have not been committed to the database do not affect the success or failure of the SYNCHRONIZEALLLOGINS function. For example, if there are open transactions in a separate client or separate Web service session from the client or session that is executing the SYNCHRONIZEALLLOGINS function, then these transactions do not cause the SYNCHRONIZEALLLOGINS function to fail.

Synchronizing all logons can take considerable time and resources. You should run this function only after you have made all planned changes to user permissions. Additionally, we recommend that you run this function outside of normal business hours.

To synchronize a single login, use the SYNCHRONIZESINGLELOGIN Function (Database).

Community Additions