云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

如何在 PostgreSQL 创建用户并分配权限 ?

jxf315 2025-01-10 14:29:04 教程文章 33 ℃

在 PostgreSQL 中创建用户并分配权限可能看起来很复杂,但一旦了解了基础知识,就会非常简单。PostgreSQL 是一个强大的数据库管理系统,用于有效地处理数据。为了允许不同的人或应用程序访问数据库,您需要创建用户并赋予他们特定的权限。此过程确保只有授权用户才能查看或修改数据,从而保持数据的安全性和良好的管理。

Step 1: Connect to PostgreSQL

第一步,连接到 PostgreSQL 服务器。

sudo -i -u postgres psql

Step 2: Creating a User

用户就像一个可以访问数据库的人,运行以下命令创建用户:

CREATE USER new_user WITH PASSWORD 'password';

new_userpassword 替换为实际的用户名和密码。

Step 3: Creating a Database

数据库是存储数据的地方,运行如下命令创建数据库:

CREATE DATABASE my_database;

my_database 替换为实际的数据库名称。

Step 4: Assigning Permissions

权限就像决定用户对数据库做操作的规则,您可以选择将指定数据库上的所有权限分配给用户,也可以选择对特定表进行有限的访问。

Grant Full Access on Database

通常,我们提供对数据库的完全访问以平稳运行任何应用程序。在开发和暂存环境中,最好允许完全特权。

使用下面的语句允许 new_usermy_database 的完全访问。

GRANT ALL ON DATABASE my_database TO new_user;

Allow Database Connection

接下来,您需要授予新用户连接到特定数据库的权限。假设您有一个名为 my database 的数据库,使用 GRANT 命令授权 new_user 访问 my_database 数据库。

GRANT CONNECT ON DATABASE my_database TO new_user;

这将不允许用户访问表数据。为了允许访问数据,您需要允许特定于表的权限。

Granting Table Permissions

在授予对数据库的访问权限之后,您可能希望向用户授予对数据库中特定表的权限。

(1) 允许 new_user 从名为 my_table 的表中读取数据

GRANT SELECT ON my_table TO new_user;

(2) 允许 new_user 从名为 my_table 的表中插入数据

GRANT INSERT ON my_table TO new_user;

(3) 允许 new_user 从名为 my_table 的表中更新数据

GRANT UPDATE ON my_table TO new_user;

(4) 允许 new_user 从名为 my_table 的表中删除数据

GRANT DELETE ON my_table TO new_user;

Granting All Permissions

将表上的所有权限 (SELECT、INSERT、UPDATE、DELETE) 授予用户,使用以下命令

GRANT ALL PRIVILEGES ON my_table TO new_user;

Step 5: Revoking Permissions

可以使用 REVOKE 命令撤销某个用户权限。例如,要删除 new_usermy_table 表的 INSERT 权限。

REVOKE INSERT ON my_table FROM new_user;

Step 6: Deleting a User

可以使用 DROP USER 命令删除一个用户。例如,删除 new_user 用户。

DROP USER new_user;

我的开源项目

  • course-tencent-cloud(酷瓜云课堂 - gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 - github 仓库)

Tags:

最近发表
标签列表