如何在PgAdmin中使用PgAdmin创建PostgreSQL用户

在本教程中,您将学习

如何在 PgAdmin 中创建 PostgreSQL 用户

以下是在 PostgreSQL PgAdmin 中创建用户的分步过程

第一步)右键单击登录名

在第一步中,右键单击登录/角色组 -> 创建 -> 单击登录/角色组…

Create PostgreSQL User in PgAdmin

第二步) 创建登录/角色组

现在,输入登录名的名称

Create PostgreSQL User in PgAdmin

第三步)单击定义并输入详细信息

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

Create PostgreSQL User in PgAdmin

第四步)特权部分

  1. 将“可以登录”按钮切换为“是”
  2. 将“超级用户”切换为“是”

Create PostgreSQL User in PgAdmin

第五步)SQL 部分

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

Create PostgreSQL User in PgAdmin

第六步)角色已创建

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

Create PostgreSQL User in PgAdmin

第七步)创建一个数据库

现在,将所有者 myguru 分配给它,如以下 create user Postgres 示例所示。

Create PostgreSQL User in PgAdmin

第八步)命令行

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

Create PostgreSQL User in PgAdmin

PostgreSQL 在 SQLShell (命令行) 中创建用户

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

CREATE USER

此 Postgres 创建带密码的用户的方法对于有权访问 PostgreSQL 服务器控制台的程序员和管理员来说更方便。此外,他们需要在 Postgres 用户创建中使用单个命令执行,而不是登录并使用 PostgreSQL 客户端的界面。

语法

CREATE USER name WITH option

where the option can be:

|SUPERUSER | NOSUPERUSER 
| CREATEROLE | NOCREATEROLE 
| CREATEDB | NOCREATEDB 

| INHERIT | NOINHERIT 

| LOGIN | NOLOGIN 

| REPLICATION | NOREPLICATION 

| BYPASSRLS  | NOBYPASSRLS 

| CONNECTION LIMIT 

| ( ENCRYPTED ] PASSWORD 'password.' 

| VALID UNTIL 'timestamp1 

| IN ROLE role_name [, ...J 

| IN GROUP role_name [, ...]

| ROLE role_name [, ...]

| ADMIN role_name [, ...)

| USER role_name [, ...]

| SYSID uid

示例

CREATE USER tom;

将创建一个名为 tom 的用户

CREATE USER tom WITH SUPERUSER;

将创建一个名为 tome 的用户,并赋予超级用户权限。让我们看下面的例子。

第一步)我们正在创建一个有效期至 2025 年 4 月 3 日 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';

Create a User SQLShell

第二步)在用户列表中输入 \du 命令

Create a User SQLShell

注意:CREATE USER 与 CREATE ROLE 命令相同。这两个命令的区别在于,当编写 Postgres CREATE USER 命令时,它默认为 LOGIN 状态,而当使用 CREATE ROLE 选项时,则假定为 NOLOGIN。

将现有用户添加到数据库

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

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

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

Add an existing user to a Database

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

GRANT 命令非常强大。您可以授予用户选择、插入、更新等精细权限。

PostgreSQL 更新用户

修改现有用户权限

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

ALTER USER Postgres 的格式包括用户名,后跟一些选项,用于告知 PostgreSQL 进行哪些权限修改

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

撤销权限

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

例如,我们可以从 mytest 中删除 SUPERUSER 状态,如下所示

ALTER USER mytest WITH NOSUPERUSER;

使用 \du,您会注意到 Superuser 权限已被删除。

Revoking Permissions

分配权限

您可以使用以下命令将 SUPERUSER 权限重新授予“mytest”

ALTER USER mytest WITH SUPERUSER;

使用 \du,您会注意到 Superuser 权限已被添加。

Assigning Permission

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 Deleting User

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

PostgreSQL Deleting User

速查表

以下是重要命令

命令 描述
CREATE USER [user]
创建用户的命令
ALTER USER role_specification
修改现有用户权限
ALTER USER [user]
撤销权限
ALTER USER [user name] WITH SUPERUSER
分配权限
DROP USER [user]
删除用户的命令