diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml index 0c47fb4..f330d8e 100644 --- a/doc/src/sgml/ref/createuser.sgml +++ b/doc/src/sgml/ref/createuser.sgml @@ -251,6 +251,17 @@ PostgreSQL documentation + + + + The new user will be allowed to initiate streaming replication + or put the system in and out of backup mode. If not specified, + not allowed to do that. + + + + + diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c index 04bbebc..667a2be 100644 --- a/src/bin/scripts/createuser.c +++ b/src/bin/scripts/createuser.c @@ -20,6 +20,8 @@ static void help(const char *progname); int main(int argc, char *argv[]) { + static int replication = 0; + static struct option long_options[] = { {"host", required_argument, NULL, 'h'}, {"port", required_argument, NULL, 'p'}, @@ -37,6 +39,7 @@ main(int argc, char *argv[]) {"no-inherit", no_argument, NULL, 'I'}, {"login", no_argument, NULL, 'l'}, {"no-login", no_argument, NULL, 'L'}, + {"replication", no_argument, &replication, 1}, /* adduser is obsolete, undocumented spelling of superuser */ {"adduser", no_argument, NULL, 'a'}, {"no-adduser", no_argument, NULL, 'A'}, @@ -145,6 +148,9 @@ main(int argc, char *argv[]) case 'N': encrypted = TRI_NO; break; + case 0: + /* this covers the long options */ + break; default: fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); exit(1); @@ -271,6 +277,10 @@ main(int argc, char *argv[]) appendPQExpBuffer(&sql, " LOGIN"); if (login == TRI_NO) appendPQExpBuffer(&sql, " NOLOGIN"); + if (replication) + appendPQExpBuffer(&sql, " REPLICATION"); + if (!replication) + appendPQExpBuffer(&sql, " NOREPLICATION"); if (conn_limit != NULL) appendPQExpBuffer(&sql, " CONNECTION LIMIT %s", conn_limit); appendPQExpBuffer(&sql, ";\n"); @@ -316,6 +326,7 @@ help(const char *progname) printf(_(" -R, --no-createrole role cannot create roles\n")); printf(_(" -s, --superuser role will be superuser\n")); printf(_(" -S, --no-superuser role will not be superuser\n")); + printf(_(" --replication role can initiate replication\n")); printf(_(" --help show this help, then exit\n")); printf(_(" --version output version information, then exit\n")); printf(_("\nConnection options:\n"));