如何在 PostgreSQL 使用 PgAdmin

⚡ 智能摘要

在……中创建用户 PostgreSQL 可以在 pgAdmin 中以可视化方式创建用户,也可以在 SQL Shell 中使用 CREATE USER 命令创建用户。之后,您可以使用 GRANT 命令授予权限,使用 ALTER USER 命令修改角色,以及使用 DROP USER 命令删除帐户。

  • 🖱️ 在 pgAdmin 中创建: 右键单击“登录/组角色”,输入名称,设置密码和权限,然后保存以创建用户。
  • 💻 创建用户命令: 在 SQL Shell 中,CREATE USER name WITH options 可以在一条命令中设置登录名、超级用户和密码。
  • ???? 授予访问权限: GRANT ALL PRIVILEGES ON DATABASE db TO user 授予现有用户对数据库的访问权限。
  • 🔧 更改用户: ALTER USER 调整角色的权限,添加或撤销诸如 SUPERUSER 之类的权限。
  • 🗑️ 删除用户: DROP USER 删除帐户,但前提是该帐户不再拥有任何数据库对象。
  • 🧾 角色与用户: 创建用户时默认使用登录角色,而创建角色时默认使用非登录角色;除此之外,它们的作用相同。

如何在 PostgreSQL 使用 PgAdmin

如何创建 PostgreSQL PgAdmin 中的用户

以下是如何创建用户的分步过程 PostgreSQL 页面管理员:

步骤1) 右键单击“登录”

第一步,右键点击“登录组角色”->“创建”->点击“登录组角色…”

创建 PostgreSQL PgAdmin 中的用户

步骤2) 创建登录/组角色

现在,输入登录名

创建 PostgreSQL PgAdmin 中的用户

步骤3) 单击“定义”并输入详细信息

  1. 输入密码
  2. 帐户的到期日期

创建 PostgreSQL PgAdmin 中的用户

步骤4) 特权部分

  1. Toggle 可以登录按钮为 YES
  2. Toggl超级用户设置为 YES

创建 PostgreSQL PgAdmin 中的用户

步骤5) SQL 部分

  1. 您将看到根据前面步骤中的选择创建用户的 SQL 查询
  2. 点击保存按钮

创建 PostgreSQL PgAdmin 中的用户

步骤6) 角色已创建

现在,角色已经反映在对象树中。

创建 PostgreSQL PgAdmin 中的用户

步骤7) 创建一个 数据库

现在,为其分配所有者 myguru,如下面的创建用户 Postgres 示例所示。

创建 PostgreSQL PgAdmin 中的用户

步骤8) 命令行

现在,您可以看到所有者是 myguru。

创建 PostgreSQL PgAdmin 中的用户

PostgreSQL 创建用户 SQLShell(命令行)

您可以使用命令行命令创建用户

创建用户

这种使用密码创建 Postgres 用户的方法对于程序员和管理员来说更加方便,因为他们可以访问 PostgreSQL 服务器。此外,他们需要创建 Postgres 用户并使用单个命令执行,而不是登录并使用 PostgreSQL 顾客。

语法:

CREATE USER name [ WITH ] option [ ... ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

计费示例:

CREATE USER tom;

将创建一个用户 tom

CREATE USER tom WITH SUPERUSER;

我们将创建一个具有超级用户权限的用户 Tom。让我们来看下面的例子。

步骤1) 我们正在创建一个有效期至 3 的超级用户rd 2025年4月11日 11:50:38 IST。请输入以下命令

CREATE USER mytest WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	NOREPLICATION
	CONNECTION LIMIT -1
	VALID UNTIL '2025-04-03T11:50:38+05:30'
	PASSWORD '123456';

创建用户 SQLShell

步骤2) 在用户清单中输入命令 \du

创建用户 SQLShell

注意: CREATE USER 命令与 CREATE ROLE 命令功能相同。两者的区别在于,Postgres 的 CREATE USER 命令默认将用户设置为 LOGIN 状态,而 CREATE ROLE 命令则默认设置为 NOLOGIN 状态。

将现有用户添加到数据库

您可以授予用户访问数据库的权限。

例如,我们授予用户“mytest”对用户 guru99 的所有权限

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

将现有用户添加到数据库

执行后 PostgreSQL 添加用户命令,用户将能够使用给定的权限访问数据库。

GRANT 命令非常强大。您可以为用户授予 Select、Insert、Update 等细粒度的权限。

PostgreSQL 更新用户

更改现有用户权限

现在我们的新用户“mytest”存在,您可以使用 ALTER USER 来更改授予图书管理员的权限。

Postgres ALTER USER 的格式包括用户的名称,后面跟着一些选项来告诉 PostgreSQL 需要进行哪些许可的修改:

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Rev授予权限

当您犯错并错误地分配了您可能想要撤销的权限时,您需要使用此命令。您可以在许可选项前使用不带前缀的 ALTER USER 命令。

例如,我们可以从 mytest 中删除 SUPERUSER 状态,例如:

ALTER USER mytest WITH NOSUPERUSER;

使用 \du,您将发现超级用户权限已被删除。

Rev授予权限

分配权限

您可以使用以下命令将用户 SUPERUSER 权限恢复为“mytest”

ALTER USER mytest WITH SUPERUSER;

使用 \du,您将观察到添加了超级用户权限。

分配权限

PostgreSQL 删除用户

如果您确定特定用户不再适用于您的数据库,则可以使用删除任何用户。请注意,删除用户永远不会影响实际数据库。

Syntax: DROP USER [user]

要删除任何用户,您必须确定该用户是数据库的所有者。否则,您可能会收到错误消息。

ERROR:  role "username" cannot be dropped because some objects depend on it

计费示例:

  1. 帐户“myguru”是数据库“demoDB”的所有者。
  2. 输入命令 DROP USER myguru
  3. 显示错误

PostgreSQL 删除用户

一旦我们更改数据库所有者,就可以删除该用户

PostgreSQL 删除用户

备忘单

以下是重要的命令

命令 描述
CREATE USER [user]
创建用户命令
ALTER USER role_specification
更改现有用户权限
ALTER USER [user]
Rev授予权限
ALTER USER [user name] WITH SUPERUSER
分配权限
DROP USER [user]
删除用户命令

常见问题

在 psql shell 中,运行 `\du` 命令可以列出所有角色及其属性。您也可以使用 `SELECT rolname FROM pg_roles` 查询系统目录,以编程方式获取相同的信息。

使用 ALTER USER 命令,例如 ALTER USER mytest WITH PASSWORD 'newpassword'。更改会立即生效。密码以加密形式存储,只有超级用户或用户本人才能更改密码。

In PostgreSQL用户和角色是同一个对象。CREATE USER 创建一个默认可以登录的角色,而 CREATE ROLE 创建一个除非添加 LOGIN 属性否则无法登录的角色。

AI 可以根据您所需访问权限的简单描述生成 CREATE USER、GRANT 和 ALTER USER 语句,并解释每项权限。这有助于您应用最小权限安全原则,而无需记忆语法。

是的。人工智能可以提供细粒度的 GRANT 命令建议,仅授予所需的权限,警告不要授予过大的超级用户访问权限,并建议使用角色对权限进行分组,以便更轻松、更安全地进行管理。

总结一下这篇文章: