final MethodExecutionInput executionInput,
final Executor executor,
final ExecutionEnvironment environment,
final Callback callback) {
final DBProgramRunConfiguration runProfile = (DBProgramRunConfiguration) environment.getRunProfile();
final ConnectionHandler connectionHandler = runProfile.getMethod().getConnectionHandler();
Project project = connectionHandler.getProject();
DatabaseDebuggerManager debuggerManager = DatabaseDebuggerManager.getInstance(project);
final List<String> missingPrivileges = debuggerManager.getMissingDebugPrivileges(connectionHandler);
if (missingPrivileges.size() > 0) {
new SimpleLaterInvocator() {
public void execute() {
StringBuilder buffer = new StringBuilder();
buffer.append("The current user (").append(connectionHandler.getUserName()).append(") does not have sufficient privileges to perform debug operations on this database.\n");
buffer.append("Please contact your administrator to grant the required privileges. ");
buffer.append("Missing privileges:\n");
for (String missingPrivilege : missingPrivileges) {
buffer.append(" - ").append(missingPrivilege).append("\n");
}