Subject: Re:Re: Re: How to use createdb command with newly created user?

From: 毛毛 <[email-masked]>
Date: Mon, 24 Jun 2024 11:36:33 +0800 (CST)

Thank you for your advice.

.pgpass file would help a lot.

I recently started to writing SQL on PostgreSQL.

I think I should use capitial letters as sparingly as possible for identifiers.

At 2024-06-24 03:38:21, "Ron Johnson" <[email-masked]> wrote:

Better to run now, and save yourself hassle in the future:
ALTER ROLE "Baba" RENAME TO baba;

Also, use a .pgpass file: https://www.postgresql.org/docs/14/libpq-pgpass.html

On Sun, Jun 23, 2024 at 3:22 PM 毛毛 <[email-masked]> wrote:

Thank you! You are right!

After putting quotes around the username, it works!

在 2024-06-24 02:47:44，"David G. Johnston" <[email-masked]> 写道：

On Sun, Jun 23, 2024, 11:43 毛毛 <[email-masked]> wrote:

Hi,

I tried to create a user with CREATEDB permission.
Then I wanted to run command line tool `createdb` with this newly created user.

So I ran SQL first to create a user:

```

CREATE USER Baba WITH PASSWORD 'xxx' CREATEDB;

```

Then I run the following command on PowerShell on Windows 10:

```
 createdb -U Baba -W test_db
```

But no mater how I tried, the password always failed.

If I specify the user as postgres, the defaut user, everything works fine.

```
createdb -U postgres -W test_db_1
```

Do you have any suggestions?

You named the user "baba" all lower-case but your createdb command uses Baba and in the OS the case-folding of identifiers does not happen.  Baba != baba  is your issue.

David J.

---

From: Muhammad Ikram <[email-masked]>
Date: Mon, 24 Jun 2024 08:51:09 +0500

Hi Krave,

It does not matter whether you use capital letters, mixed case or lower
case. Things only matter when you use double quotes. E.g. "Baba" and "BABA"
are different but Baba and BABA or baba are all the same.
Double quotes make the things case sensitive. Double quoting lower case
won't cause any issue (IMO) as this is the default PG case.

Regards,
Muhammad Ikram,
Bitnine Global

On Mon, Jun 24, 2024 at 8:36 AM 毛毛 <[email-masked]> wrote:

> Also, use a .pgpass file:
> https://www.postgresql.org/docs/14/libpq-pgpass.html
>
>> You named the user "baba" all lower-case but your createdb command uses
>> Baba and in the OS the case-folding of identifiers does not happen.  Baba
>> != baba  is your issue.
>>
>> David J.
>>
>>

-- 
Muhammad Ikram

---

From: Adrian Klaver <[email-masked]>
Date: Sun, 23 Jun 2024 21:20:57 -0700

> I think I should use capitial letters as sparingly as possible for 

Take a look at:

https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

It will answer a lot of questions.

-- 
Adrian Klaver
[email-masked]