SQL Server Launchpad service configuration
Applies to: SQL Server 2016 (13.x) and later versions
The SQL Server Launchpad is a service that manages and executes external scripts, similar to the way that the full-text indexing and query service launches a separate host for processing full-text queries.
For more information, see the Launchpad sections in Extensibility architecture in SQL Server Machine Learning Services and Security overview for the extensibility framework in SQL Server Machine Learning Services.
By default, SQL Server Launchpad is configured to run under NT Service\MSSQLLaunchpad, which is provisioned with all necessary permissions to run external scripts. Removing permissions from this account can result in Launchpad failing to start or to access the SQL Server instance where external scripts should be run.
If you modify the service account, be sure to use the Local Security Policy console.
Permissions required for this account are listed in the following table.
|Group policy setting
|Adjust memory quotas for a process
|Bypass traverse checking
|Log on as a service
|Replace a process-level token
For more information about permissions required to run SQL Server services, see Configure Windows Service Accounts and Permissions.
Typically, there is no reason to modify service configuration. Properties that could be changed include the service account, the count of external processes (20 by default), or the password reset policy for worker accounts.
Under SQL Server Services, right-click SQL Server Launchpad and select Properties.
- To change the service account, click the Log On tab.
- To increase the number of users, click the Advanced tab and change the Security Contexts Count.
In early versions of SQL Server 2016 R Services, you could change some properties of the service by editing the R Services (In-Database) configuration file. This file is no longer used for changing configurations. SQL Server Configuration Manager is the right approach for changes to service configuration, such as the service account and number of users.
A few properties can only be changed by using the Launchpad's configuration file, which might be useful in limited cases, such as debugging. The configuration file is created during the SQL Server setup and by default is saved as a plain text file in
You must be an administrator on the computer that is running SQL Server to make changes to this file. If you edit the file, we recommend that you make a backup copy before saving changes.
The following table lists the advanced settings for SQL Server, with the permissible values.
|This is an internal setting only - do not change this value.
Specifies whether the temporary working folder created for each external runtime session should be cleaned up after the session is completed. This setting is useful for debugging.
Supported values are 0 (Disabled) or 1 (Enabled).
The default is 1, meaning log files are removed on exit.
|Configures the trace verbosity level of MSSQLLAUNCHPAD for debugging purposes. This affects trace files in the path specified by the LOG_DIRECTORY setting.
Supported values are: 1 (Error), 2 (Performance), 3 (Warning), 4 (Information).
The default is 1, meaning output errors only.
All settings take the form of a key-value pair, with each setting on a separate line. For example, to change the trace level, you would add the line
Enforcing password policy
If your organization has a policy that requires changing passwords on a regular basis, you may need to force the Launchpad service to regenerate the encrypted passwords that Launchpad maintains for its worker accounts.
To enable this setting and force password refresh, open the Properties pane for the Launchpad service in SQL Server Configuration Manager, click Advanced, and change Reset External Users Password to Yes. When you apply this change, the passwords will immediately be regenerated for all user accounts. To run an external script after this change, you must restart the Launchpad service, at which time it will read the newly generated passwords.
To reset passwords at regular intervals, you can either set this flag manually or use a script.