postgres:授予我的Windows用户访问权限

时间:2015-12-01 19:50:16

标签: node.js postgresql

我正在尝试在Windows 10计算机中设置本地数据库,并授予对本地Windows用户的访问权限。但是当我尝试通过我的节点应用程序访问数据库时,我收到以下错误消息:error: password authentication failed for user "windowsuser"使用以下db-url:postgres://localhost:5432/testdb

我使用模块“pg”连接到数据库,当我在URL中指定用户名和密码时,一切正常 - 但我想使用我的Windows凭据进行连接。

我已经设置了一个与我的windowsuser同名的超级用户:

CREATE ROLE windowsuser LOGIN
    SUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION;

并将数据库windowsuser设置为所有者:

CREATE DATABASE testdb
    WITH OWNER = windowsuser
        ENCODING = 'UTF8'
        TABLESPACE = pg_default
        LC_COLLATE = ''
        LC_CTYPE = ''
        CONNECTION LIMIT = -1;
GRANT ALL ON DATABASE testdb TO windowsuser;

Windows用户没有密码,我希望能够只使用当前系统用户登录。我错过了一些必要的东西来获得适当的访问权限吗?

1 个答案:

答案 0 :(得分:0)

我相信如果没有密码,您无法简单地进行身份验证。在这里看一下PostgreSQL文档: PostgreSQL: Documentation: 9.4: Authentication Methods

您需要设置"信任身份验证"而不是"密码验证"。

  

<强> 19.3.2。密码验证
  &#34; PostgreSQL数据库密码与操作系统用户密码分开。每个数据库用户的密码都存储在pg_authid系统目录中。可以使用SQL命令CREATE USER和ALTER ROLE来管理密码,例如,CREATE USER foo WITH PASSWORD&#39; secret&#39;。 如果没有为用户设置密码,则存储的密码为空,并且该用户的密码验证将始终失败。&#34;

您选择使用Windows系统帐户以及没有密码的具体原因是什么?

相关问题