pg4admin 401 未授权错误

pg4admin 401 Unauthorized Error

在使用我之前的安装遇到困难后,我刚刚安装了 pg4admin 的桌面版本 运行。我使用以下 installing documentation 来实现这一点。

但是,当我运行 pgadmin4 服务时,页面出现以下错误:

Unauthorized

The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.

此外,我在终端上遇到以下异常:

Starting pgAdmin 4. Please navigate to http://localhost:5050 in your browser.
2016-11-01 01:14:41,981: ERROR pgadmin: The desktop user pgadmin4@pgadmin.org was not found in the configuration database.
2016-11-01 01:14:42,004: ERROR pgadmin: The desktop user pgadmin4@pgadmin.org was not found in the configuration database.
2016-11-01 01:18:45,650: ERROR pgadmin: The desktop user pgadmin4@pgadmin.org was not found in the configuration database.
2016-11-01 01:18:45,664: ERROR pgadmin: The desktop user pgadmin4@pgadmin.org was not found in the configuration database.

我在安装过程中遗漏了什么吗?我该怎么做才能解决这个问题?

删除 "pgadmin4.db" 文件并再次启动 pgAdmin4。

Linux:

~/.pgadmin/pgadmin4.db

Windows:

%appdata%\pgAdmin\pgadmin4.db

注意:您将丢失之前安装时保存的所有服务器列表。

就我而言,仅 adding/setting 环境变量 SERVER_MODE=True 效果很好。

不是答案而是解决方法

我解决了安装 pgadmin4-apache2 包并访问 http://localhost/pgAdmin4 URL

in linux ubuntu 16.04 将文件~/.pgAdmin 4.14570597673959349582.addr中的地址复制到浏览器window。看起来它包含密钥。

以下对我有用(使用 SolydK):

  • 右键单击 "tray icon"
  • select "Configure"
  • 设置"Browser Command"(例如“/usr/bin/firefox”%URL%)

在我的例子中,问题是 Internet Explorer 增强的安全配置 (IE ESC)(顺便说一句,我的 OS 是 Windows Server 2012 R2)

转到 Server Manager,从左侧窗格中选择 Local Server。 在右侧窗格中,有“IE 增强的安全配置”,状态为“on”。
单击 On,选择 Off(我关闭了 AdministratorsUsers,我想其中之一它们应该足够了,但我不确定是哪一个)。
单击OK,然后单击顶部的刷新按钮(或关闭服务器管理器)。 刷新 pg admin4 页面(或者如果这不起作用,请右键单击 pg Admin4 系统托盘图标,然后选择“New PgAdmin4 window”)。

对于Windows,另一种选择。 托盘图标,右击 select "new pgAdmin window..." 在我的例子中使用了 Yandex.browser

很简单,只需从 C:\Program Files (x86)\pgAdmin 4 和 C:\Users\acer\AppData\Roaming\pgAdmin 删除文件 pgadmin,删除所有文件,然后重新安装

@伦纳德AB
感谢您的解决方案。为我工作。在确认这是问题之后,我没有将 IE 增强安全配置 关闭,而是将 http://127.0.0.1 列入了白名单。

在 IE 中:

  1. 单击浏览器右上角的齿轮或转到 Internet 通过控制面板的选项
  2. 单击“安全”选项卡和 select 区域框中的受信任站点,然后单击“站点”按钮
  3. http://127.0.0.1添加到列表中并点击关闭,最后点击确定并确认它有效

很抱歉没有将此作为评论添加到您的 post 但我没有足够高的代表。

基于 Web 的 Pgadmin 应用程序使用 cookie 来存储其 information.pgAdmin 主要存储 3 个 cookie,即

  • PGADMIN_KEY
  • PGADMIN_LANGUAGE
  • pga4_session

因此,要使用 pgAdmin 应用程序,您必须启用浏览器 cookie,以便将这 3 个 cookie 存储在您的浏览器中。

在Chrome

  • 在您的计算机上,打开 Chrome
  • 点击右上角的更多 ,然后点击设置。
  • 点击底部的高级
  • 在“隐私和安全”下,单击站点设置
  • 单击 Cookies
  • 点击“阻止”切换按钮,然后我们将切换到“允许站点保存和读取 cookie 数据。

然后尝试打开 pdadmin4,您将看到 pgAdmin4 主屏幕。

我通过右键单击托盘图标、设置并将 URL 字段更改为

来解决

/usr/bin/firefox "%URL%"

发现于 https://askubuntu.com/questions/1186036/pgadmin4-401-unauthorized-in-ubuntu-18-04

pgAdmin 4 v4.28Windows 中出现了一个新行为,当您加载程序时,身份验证对话框永远不会在浏览器中打开。要解决此问题,请将 HKEY_CLASSES_ROOT\.js\Content Type 处的注册表项从 text/plain 更改为 text/javascript,如 FAQ.

中所述

把这行代码注释掉。这比打开浏览器的安全性要小得多。由于您只是在本地连接,因此只需注释掉该工具的安全性即可。 pgAdmin 通常 运行 来自客户端计算机,而不是来自数据库服务器所在的计算机。所以做个冒烟测试,这样就可以了

搜索栏 > 键入“explore.exe”(Windows 资源管理器)> 运行 以管理员身份 > 在文本编辑器中打开此文件 > 注释掉该行后保存文件。

C:/程序Files/PostgreSQL/13/pgAdmin4/venv/Lib/site-packages\werkzeug\exceptions.py

def __call__(self, code, *args, **kwargs):
    if not args and not kwargs and not isinstance(code, integer_types):
        raise HTTPException(response=code)
    if code not in self.mapping:
        raise LookupError("no exception for %r" % code)
    #raise self.mapping[code](*args, **kwargs) # <-------- comment line 807 in exceptions.py

右键单击 Windows 任务栏 > 任务管理器 > 结束“pgAdmin 4 Desktop Runtime”进程。这是 pgAdmin 4 桌面客户端的 pgAdmin 服务器。这与 PostgreSQL 服务器不同。然后以管理员模式重启pgAdmin。