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 选项来限制密码的有效期

相关推荐
菜菜小狗的学习笔记2 分钟前
八股(七)数据库
数据库
Bert.Cai3 分钟前
MySQL CONCAT()函数详解
数据库·mysql
qq_342295824 分钟前
SQL如何利用聚合函数生成业务分析指标_KPI计算基础教程
jvm·数据库·python
m0_515098427 分钟前
SQL查询如何处理分组后的NULL值_使用COALESCE配合聚合函数
jvm·数据库·python
PaperData13 分钟前
1990-2025年企业基金退出事件数据
数据库·数据分析·经管
Bert.Cai22 分钟前
MySQL DDL简介
数据库·mysql
ClouGence25 分钟前
从 OLTP 到 OLAP:Spanner 到 StarRocks 架构演进与实现
大数据·数据库·starrocks·olap·dba·oltp·spanner
qiuyunoqy30 分钟前
Redis 常见数据结构,编码方式
数据库·redis·缓存
qq_4240985633 分钟前
HTML5中解决数据库版本号管理混乱的规范化建议
jvm·数据库·python
Irene199139 分钟前
Python下载第三方库:requests、oracledb,连接 Oracle 数据库,测试数据输出(切记不要操作或删除系统表)
数据库·python·oracledb