不允许具有管理权限的用户执行postgresql

use*_*308 5 windows postgresql

Win7的.Postgres 9.3.

每当我在cmd中键入"postgres"时,我都会收到此错误.

创建了一个没有任何管理员权限的新帐户,并且"登录为"权限,并且对postgres/data具有正确的目录访问权限,然后我将此帐户设置为服务菜单中的"登录身份",但我仍然得到相同的错误.

update2017:我从来没有找到解决方案.

use*_*767 6

对于Windows这样做:

  1. 启动cmd.exe(管理员)
  2. 添加postgres用户: net user postgres your_password /add
  3. 使用新的postgres帐户启动cmd.exe: runas /user:postgres cmd.exe
  4. 您可以使用"验证您是否正确登录" whoami
  5. 正常运行postgres.

  • Postgres 应该通过`pg_ctl` **而不是通过`postgres.exe` 启动 (2认同)

小智 5

从您的问题中不清楚您是尝试启动 Postgres服务还是在未注册 Windows 服务的情况下“手动”启动 Postgres。

由于 9.x Postgres 不需要它自己的 Windows 用户帐户来运行该服务。它默认使用内置的“网络”帐户。

要启动 Postgres 服务(如果已正确安装),只需使用 use

net start postgresql-9.3
Run Code Online (Sandbox Code Playgroud)

(实际名称可能有所不同)

如果您没有注册 Windows 服务,您应该pg_ctl.exe通过而不是通过启动 Postgres postgres.exepg_ctl.exe启动服务器时将从进程中删除任何管理权限。

要从命令行手动启动 Postgres,请使用:

pg_ctl -w -D c:\Path\To\The\DataDirectory
Run Code Online (Sandbox Code Playgroud)

假设数据目录的访问权限设置正确,以便当前用户对该目录具有完全访问权限。

如果您想手动安装/创建 Windows 服务,也可以通过该pg_ctl程序执行此操作:

pg_ctl register -N "postgresql-9.3" -D c:\Path\To\The\DataDirectory
Run Code Online (Sandbox Code Playgroud)

同样,必须正确设置数据目录的访问权限。