PostgreSQL17.x创建用户与授权命令

PostgreSQL17.X创建用户与授权

文章目录

  • PostgreSQL17.X创建用户与授权
  • [1. 创建用户与授权](#1. 创建用户与授权)
    • [1. 授权给用户](#1. 授权给用户)
    • [2. 授予对整个数据库的权限](#2. 授予对整个数据库的权限)
    • [3. 授予创建数据库的权限](#3. 授予创建数据库的权限)
    • [4. 授予对表的权限](#4. 授予对表的权限)
    • [5. 授予对所有表的权限](#5. 授予对所有表的权限)

在 PostgreSQL 17 中创建用户(角色)并授权可以使用 SQL 命令来完成。以下是一些基本的命令示例,用于创建用户、设置密码以及授予特定权限。

1. 创建用户与授权

要创建一个新用户,您可以使用 CREATE ROLECREATE USER 命令。实际上,CREATE USERCREATE ROLE 的一个简写形式,它默认创建了一个可以登录的用户。

sql 复制代码
CREATE ROLE username LOGIN PASSWORD 'password';
# 或
CREATE USER username LOGIN PASSWORD 'password';
  • username: 为用户指定的名字。
  • LOGIN: 表示这个角色可以用来登录数据库。
  • PASSWORD 'password': 设置用户的登录密码。

1. 授权给用户

创建了用户之后,您可能需要赋予他们一些权限,比如访问特定数据库或表的权限

sql 复制代码
GRANT ALL PRIVILEGES ON DATABASE databasename TO username;
  • databasename: 目标数据库的名称。
  • username: 要授予权限的用户名。

2. 授予对整个数据库的权限

要将所有权限授予用户对某个数据库的操作

sql 复制代码
GRANT ALL PRIVILEGES ON DATABASE databasename TO username;

3. 授予创建数据库的权限

sql 复制代码
ALTER ROLE username CREATEDB;

4. 授予对表的权限

如果只想授予对特定表的权限,可以使用如下命令

sql 复制代码
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE tablename TO username;
  • SELECT, INSERT, UPDATE, DELETE: 指定用户可以执行的操作类型。
  • tablename: 目标表的名称。
  • username: 要授予权限的用户名。

5. 授予对所有表的权限

想让用户能够操作数据库中的所有表,可以使用以下命令;

这将授予用户对 public 模式下所有现有表的所有权限。如果您有其他模式,记得替换 public 为相应的模式名。

sql 复制代码
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO username;
  • 注意事项:

  • 在执行这些命令之前,请确保您有足够的权限来创建用户和授予权限。

  • 使用 WITH PASSWORD 选项时,请确保选择一个强密码以保障数据库安全。

  • 还可以考虑使用 VALID UNTIL 选项来限制密码的有效期

相关推荐
不羁。。3 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1115 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance5 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai5 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白5 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务5 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂8 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.9 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚12 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队13 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术