1

我正在尝试配置我的 PostgreSql 数据库(“mydb”),以便为 Windows“LocalSystem”帐户提供登录权限。

我在我的数据库中创建了一个名为 LocalSystem 的用户

SQL> CREATE USER LocalSystem;

然后,我尝试在 pg_hba.conf 中使用 SSPI 配置,但也许我错误地配置了配置行:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    mydb            LocalSystem     127.0.0.1/32            sspi

当我使用 psql 运行命令时,我被要求提供密码……这是我没想到的……

编辑:我还尝试将我的域帐户映射到 postgres 用户,使用

pg_ident.conf
#MAPNAME       SYSTEM-USERNAME         PG-USERNAME
 postgresname  domain\username         postgresname

pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
  host  mydb            postgresname    127.0.0.1/32            sspi

有人知道我该怎么做吗?

谢谢

4

2 回答 2

0

它要求输入 Postgres 帐户的密码,而不是 Windows 帐户的密码。您可以通过 ALTER ROLE 或在 psql 中使用 \password 命令设置 Postgres 密码

于 2017-10-20T19:43:54.003 回答
0
  1. 您需要向 pg_ident.conf 添加新的映射行:

    anyMappingName "SYSTEM@NT AUTHORITY" postgresUserName

  2. 将此映射添加到 pg_hba.conf 中的所有活动行:

    host mydb all 127.0.0.1/32 sspi map=anyMappingName

  3. 然后你应该以postgresUserName用户的身份连接到 postgres db 。我的意思是您应该在连接字符串中定义用户名,并将 IntegratedSecurity 定义为 TRUE。

例如,postgresUserName 可以是您之前在 postgres db 中创建的“LocalSystem”用户,或者是超级用户“postgres”。

于 2020-11-18T22:28:27.737 回答