Re: Update "usename" in pg_user

Поиск
Список
Период
Сортировка
От Ron
Тема Re: Update "usename" in pg_user
Дата
Msg-id 0098d2d1-c8a5-42a4-9be3-3a854cb2ff17@gmail.com
обсуждение исходный текст
Ответ на Re: Update "usename" in pg_user  ("Dischner, Anton" <Anton.Dischner@med.uni-muenchen.de>)
Ответы Re: Update "usename" in pg_user  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-admin
On 11/14/23 08:38, Dischner, Anton wrote:
@font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman",serif;}a:link, span.MsoHyperlink {mso-style-priority:99; color:#0563C1; text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;}p.msonormal0, li.msonormal0, div.msonormal0 {mso-style-name:msonormal; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; font-size:12.0pt; font-family:"Times New Roman",serif;}span.E-MailFormatvorlage18 {mso-style-type:personal-compose; font-family:"Times New Roman",serif;}.MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;}div.WordSection1 {page:WordSection1;}

Hi all,

 

thats what Bard has to offer:

 

 

write me a bash script to rename all users for postgresql. i want to append "@email.com"

 

 

Sure, here is a bash script to rename all users for PostgreSQL and append "@email.com":
Bash#!/bin/bash

# Get all users
users=$(psql -c "SELECT usename FROM pg_user;" | grep -v "postgres")

# Rename all users
for user in $users; do
psql -c "ALTER USER $user RENAME TO $user@email.com;"
done


A one-liner, that might have to be modified for double-quote handling:
psql -c "SELECT format('ALTER ROLE %s RENAME TO \"%s@example.com\";', username, username) FROM pg_user WHERE username != 'postgres'\gexec"

The two username uses can be shrunk to one with appropriate use of %s modifiers that I don't remember off the top of my head.


# Display success message
echo "All users have been renamed successfully."

To use this script, simply save it as a file with a .sh extension (e.g., rename_users.sh) and make it executable by running the following command:
Bashchmod +x rename_users.sh

Then, you can run the script to rename all users by running the following command:
Bash./rename_users.sh

This script will rename all users in the current PostgreSQL database. If you want to rename all users in a specific database, you can specify the database name as an argument to the psql command. For example, to rename all users in the database "my_database", you would run the following command:
Bashpsql -d my_database -c "SELECT usename FROM pg_user;" | grep -v "postgres"

You can also modify the script to append a different string to the end of the usernames. For example, to append the string "@example.com", you would change the line "ALTER USER $user RENAME TO $user@email.com;" to the following line:
BashALTER USER $user RENAME TO $user@example.com;

 

Best,

 

Anton


--
Born in Arizona, moved to Babylonia.

В списке pgsql-admin по дате отправления:

Предыдущее
От: Holger Jakobs
Дата:
Сообщение: Re: Update "usename" in pg_user
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Update "usename" in pg_user