gpt4 book ai didi

validation - 在没有数据库的情况下验证 PostgreSQL 用户和密码

转载 作者:行者123 更新时间:2023-11-29 11:48:26 25 4
gpt4 key购买 nike

如何在不存在数据库的情况下验证 postgresql 用户和密码是否有效?

我正在创建一个自动安装,它将创建一个数据库并运行 sql 脚本来创建表。安装需要在运行脚本之前验证用户和密码。自动安装调用 Windows 批处理文件。首先我设置密码,设置PGPASSWORD=mypassword

设置密码后,什么命令可以验证用户和密码并返回错误代码或消息?

其他数据库程序(如 IBM 和 db2)有一个附加命令,允许用户附加到服务器或实例,而无需指定数据库名称。我找不到 PostgreSQL 的等效项。

如何在不指定数据库名称的情况下通过命令行登录 PostgreSQL?

最佳答案

使用系统表pg_roles

Postgres 总是安装一个名为“postgres”的数据库。 postgres 是您未连接到数据库时连接到的数据库。其中有一个名为 pg_roles 的表。

使用这个命令:

psql -U pgadmin -d postgres -c 'select * from pg_roles'

返回这个:

 rolname  | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolconfig |  oid
----------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+-------
postgres | t | t | t | t | t | t | t | -1 | ******** | | | 10
pgadmin | t | t | t | t | t | t | t | -1 | ******** | | | 16384

(2 行)

查看此答案:How to check if a postgres user exists?

登录测试

只需尝试使用提供的用户名/密码登录并用 try/catch 包围它,如果可以登录则它是有效的,否则它是无效的。

改变用户

如果您更改不存在的用户,您可能会收到一条错误消息:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html

ALTER USER postgres WITH PASSWORD 'tmppassword';

删除并重新添加用户

如果您尝试删除并重新添加用户,您可能会收到一条错误消息。因此,如果它无效,那么当您尝试删除非用户时它会抛出错误。 http://www.postgresql.org/docs/8.0/static/sql-createuser.html

关于validation - 在没有数据库的情况下验证 PostgreSQL 用户和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com