如何在PgAdmin中使用PgAdmin创建PostgreSQL用户
在本教程中,您将学习
- PostgreSQL 在 PgAdmin 中创建用户
- PostgreSQL 在 SQLShell (命令行) 中创建用户
- 将现有用户添加到数据库
- PostgreSQL 更新用户
- PostgreSQL 删除用户
- 速查表
如何在 PgAdmin 中创建 PostgreSQL 用户
以下是在 PostgreSQL PgAdmin 中创建用户的分步过程
第一步)右键单击登录名
在第一步中,右键单击登录/角色组 -> 创建 -> 单击登录/角色组…
第二步) 创建登录/角色组
现在,输入登录名的名称
第三步)单击定义并输入详细信息
- 输入密码
- 账户的到期日期
第四步)特权部分
- 将“可以登录”按钮切换为“是”
- 将“超级用户”切换为“是”
第五步)SQL 部分
- 您将看到根据前几步的选择创建用户的 SQL 查询
- 点击保存按钮
第六步)角色已创建
现在,角色已反映在对象树中。
第七步)创建一个数据库
现在,将所有者 myguru 分配给它,如以下 create user Postgres 示例所示。
第八步)命令行
现在,您可以看到所有者是 myguru。
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';
第二步)在用户列表中输入 \du 命令
注意:CREATE USER 与 CREATE ROLE 命令相同。这两个命令的区别在于,当编写 Postgres CREATE USER 命令时,它默认为 LOGIN 状态,而当使用 CREATE ROLE 选项时,则假定为 NOLOGIN。
将现有用户添加到数据库
您可以授予用户访问数据库的权限。
例如,我们将用户“mytest”对用户 guru99 的所有权限授予
GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;
在执行 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 权限已被删除。
分配权限
您可以使用以下命令将 SUPERUSER 权限重新授予“mytest”
ALTER USER mytest WITH SUPERUSER;
使用 \du,您会注意到 Superuser 权限已被添加。
PostgreSQL 删除用户
如果您确定某个用户不再需要用于您的数据库,您可以删除任何用户。请注意,删除用户不会影响实际数据库。
Syntax: DROP USER [user]
要删除任何用户,您必须确保该用户是数据库的所有者。否则,您可能会收到错误消息。
ERROR: role "username" cannot be dropped because some objects depend on it
示例
- 帐户“myguru”是数据库“demoDB”的所有者。
- 输入命令 DROP USER myguru
- 显示错误
一旦我们更改了数据库所有者,就可以删除该用户了
速查表
以下是重要命令
命令 | 描述 |
---|---|
CREATE USER [user] |
创建用户的命令 |
ALTER USER role_specification |
修改现有用户权限 |
ALTER USER [user] |
撤销权限 |
ALTER USER [user name] WITH SUPERUSER |
分配权限 |
DROP USER [user] |
删除用户的命令 |