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

时间:2014-06-21 12:49:24

标签: windows postgresql

Win7的。 Postgres 9.3。

每当我在cmd中输入“postgres”时,我都会收到此错误。

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

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

2 个答案:

答案 0 :(得分: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. 验证您是否正确登录
  6. 正常运行postgres。

答案 1 :(得分:2)

您的问题是否正在尝试启动Postgres 服务或"手动"在没有注册Windows服务的情况下启动Postgres。

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

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

net start postgresql-9.3

(实际名称可能不同)

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

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

pg_ctl -w -D c:\Path\To\The\DataDirectory

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

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

pg_ctl register -N "postgresql-9.3" -D c:\Path\To\The\DataDirectory

必须再次正确设置数据目录的访问权限。