2 #-------------------------------------------------------------------------
5 # Utility for removing a user from the PostgreSQL database.
7 # Copyright (c) 1994, Regents of the University of California
11 # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.3 1999/12/07 22:41:44 momjian Exp $
13 # Note - this should NOT be setuid.
15 #-------------------------------------------------------------------------
22 # Check for echo -n vs echo \c
24 if echo '\c' | grep -s c >/dev/null 2>&1
41 # options passed on to psql
43 PSQLOPT="$PSQLOPT -h $2"
49 PSQLOPT="$PSQLOPT -h "`echo $1 | sed 's/^--host=//'`
52 PSQLOPT="$PSQLOPT -p $2"
58 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
60 # Note: These two specify the user to connect as (like in psql),
61 # not the user you're dropping.
63 PSQLOPT="$PSQLOPT -U '$2'"
69 PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--user=//'`
72 PSQLOPT="$PSQLOPT -U "`echo $1 | sed 's/^--username=//'`
81 PSQLOPT="$PSQLOPT -o /dev/null"
88 echo "$CMDNAME: Unrecognized option: $1. Try -? for help."
101 if [ "$usage" ]; then
102 echo "Usage: $CMDNAME [-h server] [-p port] [-i] [username]"
106 # Prompt for username if missing
108 if [ -z "$DelUser" ]; then
109 $ECHO_N "Enter name of user to delete: "$ECHO_C
111 [ $? -ne 0 ] && exit 1
115 if [ "$forcedel" = f ]; then
116 echo "User \"$DelUser\" and any owned databases will be permanently deleted."
117 $ECHO_N "Are you sure? (y/n) "$ECHO_C
120 [ $? -eq 1 ] && exit 1
121 [ "$REPLY" != "y" -a "$REPLY" != "Y" ] && exit 0
125 DelUser=`echo $DelUser | sed 's/\"/\\\"/g'`
127 psql $PSQLOPT -d template1 -c "DROP USER \"$DelUser\""
129 if [ $? -ne 0 ]; then
130 echo "$CMDNAME: Deletion of user \"$DelUser\" failed."