我正尝试在Windows10计算机上设置一个本地数据库,并将访问权限授予我的本地windows用户。但是,当我尝试通过我的节点应用程序访问数据库时,我得到了以下错误消息:使用以下db-url:error: password authentication failed for user "windowsuser":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用户没有密码,我希望能够以当前系统用户登录。为了获得正确的访问权限,我是否遗漏了一些必要的东西?
发布于 2015-12-03 21:14:47
我相信你不能在没有密码的情况下进行简单的认证。在这里查看一下PostgreSQL文档:PostgreSQL: Documentation: 9.4: Authentication Methods
您需要设置“信任身份验证”而不是“密码身份验证”。
19.3.2。密码身份验证
PostgreSQL数据库口令与操作系统用户口令是分开的。每个数据库用户的口令存储在pg_authid系统目录中。可以使用SQL命令CREATE user和ALTER ROLE来管理口令,例如,CREATE USER foo WITH password 'secret‘。如果尚未为用户设置口令,则存储的口令为null,该用户的口令验证将始终失败。
您选择使用Windows系统帐户而不使用密码是否有特定的原因?
https://stackoverflow.com/questions/34028858
复制相似问题