我在 Windows 7 机器上运行 PostgreSQL。要运行数据库,我输入:
C:\psql -Upostgres mydb
这可行,但如果我可以省略
-U
的内容,那就太好了,但 Postgres 认为我正在尝试以“Eric”身份登录,因为那是我的用户配置文件。
所以显然我需要向 Postgres 添加一个用户。但如何呢?如果我尝试:
C:\createuser Eric
Postgres 认为我正在尝试添加用户 Eric 作为用户 Eric,但失败了。添加
-U
标志在这里似乎不起作用。
我错过了什么?我的命令窗口处于管理员模式,显然没有
sudo
可用。
在 pgadmin 中,您可以创建一个新的“登录角色”并将其命名为 Eric 并以图形方式授予其权限,或者从命令行您可以执行类似的操作
psql -U postgres -c "CREATE ROLE Eric LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE;" mydb
有关 CREATE ROLE 选项的信息,请参阅 https://www.postgresql.org/docs/current/sql-createrole.html。
只是为了添加更多信息。从官方文档:您可以通过环境变量指定createuser实用程序登录postgres的用户:
PGUSER
Powershell 的一个衬垫:
& { $env:PGUSER="postgres"; .\createuser.exe Eric}
-U
开关:
-U username
--username username
要连接的用户名(不是要创建的用户名)。
这就是我期望使用的(尽管我从未尝试过在 Windows 上设置 PostgreSQL,仅在 unice 上)。
这对我有用
--username Shweta;
现在创建数据库
create database db;
最简单的情况是使用 Windows 命令行,据我了解,存在用户
posgres
:
psql -U postgres -c "CREATE ROLE shpp;"
psql -U postgres -c "ALTER ROLE shpp WITH LOGIN;"
psql -U postgres -c "ALTER USER shpp CREATEDB;"
psql -U postgres -c "ALTER USER shpp WITH PASSWORD 'shpp';"
在我的
shpp
示例中,这是新用户的名称和密码。