private void addUserCommand() throws GeneralSecurityException, Exception {
		discoverPostgresInstall();
		initializeDataDirectory();			// Needed to pick up authentication settings
		if (hostAuthentication == AUTHENTICATION_PKI) {
			if (distinguishedName == null || commonName == null) {
				throw new GeneralSecurityException("Distinguished name required (dn=\"..\")");
			}
		}
		StringBuilder resultMessage = new StringBuilder();
		resultMessage.append("Added user: ");
		resultMessage.append(specifiedUserName);
		boolean resetPassword = (hostAuthentication == AUTHENTICATION_PASSWORD);

		adminPasswordData = null;

		localConnection = getOrCreateLocalConnection();

		StringBuilder buffer = new StringBuilder();
		buffer.append("CREATE ROLE \"");
		buffer.append(specifiedUserName);
		buffer.append("\" WITH LOGIN");

		try (Statement st = localConnection.createStatement()) {
			st.executeUpdate(buffer.toString());
		}
		catch (SQLException err) {
			if (!err.getMessage().contains("already exists")) {		// Suppress already exists error message
				throw err;
			}
			resultMessage.append(" (already present)");				// Record that user is already added
			resetPassword = false;
		}
		finally {
			if (resetPassword) {
				resetPassword(localConnection, specifiedUserName);
			}
			localConnection.close();
		}

		if (hostAuthentication == AUTHENTICATION_PKI) {
			addCertificateName(specifiedUserName);
			reloadIdent();
			System.out.println("Linking distinguished name to user: " + specifiedUserName);
			return;
		}
		System.out.println(resultMessage.toString());
	}
Add a new user to the currently running server on the local host.
A connection is established, using the local interface, and the "CREATE ROLE" command
is executed. If the server is configured to require certificate authentication on
remote connections, the user must have provided a distinguished name associated with
the certificate, which is then mapped to the new username. 
@throws GeneralSecurityException if using PKI and no Distinguished Name is found
@throws Exception if there's a problem initializing the Application of discovering the Postgres installation
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/BSimControlLaunchable.java