查看密码
问题:查询密码是否只能查询超级用户的密码其他用户查询不出来?
查询缩写命令的命令
查看所有用户的SQL语句:
1. 查询结果结构
执行 SELECT user, host FROM mysql.user;
后,返回的 8 行数据包含以下两类用户:
用户类型 | 用户名 | host 值 | 说明 |
---|---|---|---|
自定义用户 | cc 、ll 、repl 、root | % | 可从任意主机连接(% 表示通配符)。 |
系统用户 | mysql.infoschema | localhost | 内部管理用户,用于统计信息查询(不可登录)。 |
mysql.session | localhost | 用于管理会话资源的系统用户(不可登录)。 | |
mysql.sys | localhost | 用于访问 sys 数据库的系统用户(不可登录)。 | |
本地管理员用户 | root | localhost | 超级管理员账户,仅允许本地登录(默认安全配置)。 |
—*
user
列:- 用户名,用于登录 MySQL 的标识(如
root
、repl
)。
- 用户名,用于登录 MySQL 的标识(如
host
列:- 定义用户允许登录的主机范围:
%
:允许任意主机(包括远程主机)登录。localhost
:仅允许本地登录(通过本地 socket 文件连接)。
- 定义用户允许登录的主机范围:
-
限制敏感账户的登录权限:
- 如
root
用户应始终设置为localhost
,避免远程登录风险。 - 若需远程管理,可创建专用管理用户并限制
host
范围(如192.168.1.%
)。
- 如
-
清理冗余账户:
- 删除无用的自定义用户(如
cc
、ll
),减少攻击面。
- 删除无用的自定义用户(如
-
验证系统用户权限:
- 系统用户(如
mysql.sys
)通常无需额外权限,确保未被误授权。
- 系统用户(如
4. 进一步操作命令
- 查看用户详细权限:
SELECT user, host, authentication_string, plugin FROM mysql.user;
- 修改用户登录权限:
-- 将 root 用户限制为仅本地登录 DROP USER 'root'@'%'; CREATE USER 'root'@'localhost' IDENTIFIED BY '强密码';
- 删除冗余用户:
DROP USER 'cc'@'%'; DROP USER 'll'@'%';
总结
- 当前状态:存在部分用户允许远程登录(如
repl
、root
@%
),需检查其必要性。 - 建议行动:
- 限制敏感账户的
host
范围。 - 清理无用账户(如
cc
、ll
)。 - 定期检查
mysql.user
表,确保权限最小化。
- 限制敏感账户的
查看用户权限:
1. 命令含义
SHOW GRANTS FOR 'll'@'%';
这条命令用于查看用户ll
的权限。%
表示该用户可以从任意主机连接到数据库。
2. 用户权限总结
权限类型 | 具体权限 | 作用说明 |
---|---|---|
全局权限 | CREATE , DROP , RELOAD , PROCESS | - 可创建/删除数据库 - 可刷新服务器缓存 - 可查看所有运行进程信息 |
特定数据库权限 | ALL PRIVILEGES ON min.* , ALL PRIVILEGES ON example_db.* | - 对 min 和 example_db 数据库的所有表,拥有增删改查等全部权限 |
系统数据库权限 | - sys :SELECT , EXECUTE - performance_schema :SELECT - mysql :多个表的 SELECT | - 可查询系统性能数据 - 可查看数据库元数据(如日志、时区、函数定义等) |
3. 应用场景
- 数据库管理:用户
ll
可创建/删除数据库,适合管理员角色。 - 数据操作:可对
min
和example_db
数据库进行所有数据操作(增删改查)。 - 系统监控:通过
performance_schema
和mysql
数据库,监控数据库性能和状态。
4. 安全提示
- 权限过大:用户拥有全局权限(如
DROP
)和系统数据库访问权限,可能带来安全风险。 - 建议:仅授予实际需要的权限,避免滥用高危权限(如
DROP
)。
5. 如何调整权限
- 增加权限:
GRANT <权限类型> ON <数据库名>.<表名> TO 'll'@'%';
- 减少权限:
REVOKE <权限类型> ON <数据库名>.<表名> FROM 'll'@'%';
- 刷新权限:
FLUSH PRIVILEGES;
如果需要更具体的权限管理建议,请告诉我!
问题为什么带主机名不能执行,而%能执行
查看高可用同步用户信息
在MySQL主从复制等高可用场景中,需要创建复制用户:
在 MySQL 的主从复制(高可用同步)配置中,复制用户 是一个关键角色。它的主要作用是允许从库(Slave)连接到主库(Master),并读取主库的二进制日志(Binary Log)以实现数据同步。以下是创建复制用户的 SQL 语句及其含义的详细解释:
1.1 语句解析
语句 | 作用 |
---|---|
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; | 创建一个用户名为 repl_user 、允许从任意主机(% )连接的用户,并设置密码为 password 。 |
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; | 授予该用户 REPLICATION SLAVE 权限,允许其读取主库的二进制日志(用于主从同步)。 |
FLUSH PRIVILEGES; | 刷新权限表,使新创建的用户和权限立即生效。 |
2. 关键概念
(1) 复制用户的作用
- 主从同步的核心:从库通过复制用户连接到主库,读取主库的二进制日志(记录所有数据变更操作),并将这些操作重放到从库,从而保持数据一致性。
- 安全性:复制用户通常只授予
REPLICATION SLAVE
权限,避免其拥有其他高危权限(如DROP
、DELETE
等)。
(2) 权限详解
REPLICATION SLAVE
:- 允许从库连接到主库并读取二进制日志。
- 必要权限:主从复制必须授予此权限。
REPLICATION CLIENT
(可选):- 允许用户查询主库的复制状态(如
SHOW MASTER STATUS
)。
- 允许用户查询主库的复制状态(如
3. 配置示例
3.1 创建复制用户
-- 创建用户(允许从任意主机连接)
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
3.2 验证用户权限
-- 查看用户权限
SHOW GRANTS FOR 'repl_user'@'%';
输出示例:
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'
4. 主从复制流程中的作用
- 主库:
- 启用二进制日志(
log-bin=mysql-bin
)。 - 复制用户通过
CHANGE MASTER TO
命令指定主库的连接信息(IP、端口、用户名、密码、日志文件位置等)。
- 启用二进制日志(
- 从库:
- 使用复制用户的权限连接到主库,拉取二进制日志。
- 将日志中的操作写入本地的中继日志(Relay Log),并由 SQL 线程重放,实现数据同步。
5. 注意事项
-
主机名限制:
- 如果从库需要从特定 IP 连接主库,可以将
'%'
替换为具体 IP(如'192.168.1.100'
)。 - 示例:
CREATE USER 'repl_user'@'192.168.1.100' IDENTIFIED BY 'password';
- 如果从库需要从特定 IP 连接主库,可以将
-
安全建议:
- 避免使用
%
:生产环境中建议限制复制用户只能从特定 IP 连接,防止未授权访问。 - 密码复杂度:设置强密码,避免使用简单密码。
- 避免使用
-
Docker/Kubernetes 环境:
- 如果主从数据库部署在容器中,需确保复制用户使用的主机名或 IP 地址与容器网络一致。
6. 常见错误与解决方法
(1) 错误:权限不足
- 错误信息:
ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation
- 解决方法:确保用户已授予
REPLICATION SLAVE
权限。
(2) 错误:连接失败
- 错误信息:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet'
- 解决方法:检查主库的防火墙是否开放了 MySQL 端口(默认 3306),并确认复制用户的主机名/IP 设置正确。
(3) 错误:用户不存在
- 错误信息:
ERROR 1141 (42000): There is no such grant defined for user 'repl_user' on host '%'
- 解决方法:通过
CREATE USER
创建用户并授予权限。
查看<数据目录,临时文件,日志文件>所在路径
问题:查看文件要退出MySQL后进入服务器查看
对于数据目录
1. 目录结构
ls -l
输出:
显示了当前目录下的所有文件和子目录,包括权限、所有者、大小、修改时间及名称。
2. 文件与目录详解
文件/目录 | 类型 | 作用 |
---|---|---|
.ibd 文件 | InnoDB 表空间文件 |
mysql.ibd
:存储mysql
数据库的表数据(如系统表)。- 双重写缓冲文件(
#ib_16384_0.dblwr
、#ib_16384_1.dblwr
):用于 InnoDB 数据恢复,防止磁盘写入失败导致数据损坏。
| .pem
文件 | SSL 证书与密钥 |
ca.pem
、server-cert.pem
、client-cert.pem
等:用于加密 MySQL 客户端与服务器之间的通信,确保数据传输安全。
| auto.cnf
| 配置文件 |
- 存储 MySQL 自动配置信息(如 InnoDB 实例的 UUID),通常由 MySQL 自动生成和管理。
| 数据库目录(如 example_db
、mysql
) | 数据库物理存储目录 |
- 每个目录对应一个数据库,内部包含该数据库的
.ibd
表空间文件。
| #innodb_temp
| 临时表空间目录 |
- 存储 InnoDB 的会话级临时表数据(如
CREATE TEMPORARY TABLE
生成的表)。
3. 权限与所有者
- 权限说明:
- 文件权限(如
rw-r-----
):mysql
用户可读写,mysql
组可读,其他用户无权限。 - 目录权限(如
drwxr-x---
):mysql
用户可读写执行,mysql
组可读执行,其他用户无权限。
- 文件权限(如
- 所有者:所有文件和目录均属于
mysql
用户和mysql
组,这是标准的安全配置,防止未授权访问。
4. 文件大小与修改时间
- 文件大小示例:
mysql.ibd
:约 31MB,表明mysql
数据库的系统表数据量较大。- 双重写缓冲文件:768KB 和 8.75MB,反映 InnoDB 的写操作频率。
- 修改时间:
- 文件修改时间集中在 7 月 11 日至 17 日,表明该时间段内数据库有活跃的操作。
5. 总结
- 数据库状态:
- 数据文件、SSL 证书和配置文件齐全,目录结构完整,表明 MySQL 实例运行正常。
- 安全性:
- 存在完整的 SSL 证书(
.pem
文件),支持加密连接。 - 权限设置严格,仅限
mysql
用户和组访问。
- 存在完整的 SSL 证书(
- 数据量:
mysql
数据库的.ibd
文件较大,可能包含较多系统表数据(如用户权限表)。
6. 建议
- 备份:定期备份
.ibd
文件和.pem
证书,防止数据丢失或证书泄露。 - 监控:
- 关注
mysql.ibd
和双重写缓冲文件的大小增长趋势,评估存储需求。 - 检查
.pem
文件的权限(建议仅限mysql
用户读取)。
- 关注
- 安全加固:
- 确保 SSL 证书有效期,定期更新私钥和公钥。
- 避免将敏感数据目录暴露给非管理员用户。
查看存储引擎状态:
下面参数解释
SHOW ENGINE INNODB STATUS;
输出解析
以下是对输出内容的逐段解释,结合 MySQL InnoDB 引擎的核心机制和常见监控场景:
1. 背景线程状态(BACKGROUND THREAD)
srv_master_thread loops: 121975 srv_active, 0 srv_shutdown, 160028 srv_idle
- 含义:
srv_master_thread
是 InnoDB 的主后台线程,负责刷新缓冲池、合并插入缓冲区等任务。121975
次处于活跃状态(处理数据写入/刷新),160028
次处于空闲状态(无任务时等待)。
- 关键点:
- 空闲次数多说明 I/O 或 CPU 负载较低,数据库可能处于空闲或读写压力较小的状态。
2. 信号量与锁(SEMAPHORES)
OS WAIT ARRAY INFO: reservation count 92648
Spin rounds per wait: 0.00 RW-shared, 0.00 RW-excl, 0.00 RW-sx
- 含义:
- 信号量(Semaphore)用于控制并发访问共享资源(如缓冲池、日志文件)。
reservation count
表示等待信号量的次数,spin rounds
表示自旋尝试获取锁的次数。
- 关键点:
- 所有
spin rounds
为 0,说明没有锁争用(无线程竞争资源),数据库运行平稳。
- 所有
3. 事务状态(TRANSACTIONS)
Trx id counter 348658
History list length 16
---TRANSACTION 421549351905248, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
- 含义:
Trx id counter
:当前最大事务 ID 为 348658,反映数据库处理事务的总量。History list length
:事务回滚段中已提交事务的历史记录长度为 16,通常与innodb_purge_rseg_truncate_frequency
配置相关。- 所有事务均未启动(
not started
),且无行锁(0 row lock(s)
),说明无活跃事务。
- 关键点:
- 无事务活动可能表示数据库处于空闲状态,或当前会话未执行任何操作。
4. 文件 I/O 状态(FILE I/O)
I/O thread 0 state: waiting for completed aio requests
1965 OS file reads, 1916531 OS file writes, 1175443 OS fsyncs
- 含义:
- I/O 线程(共 24 个)均处于等待异步 I/O(AIO)完成的状态,表明磁盘 I/O 无阻塞。
- 累计执行了 1965 次读操作、1,916,531 次写操作和 1,175,443 次
fsync
(日志刷盘)。
- 关键点:
- 写操作远多于读操作,可能与数据库的写密集型负载(如频繁插入/更新)有关。
fsyncs/s
(4.48/s)较低,表明日志刷盘频率可控,未出现 I/O 瓶颈。
5. 缓冲池与内存(BUFFER POOL AND MEMORY)
Buffer pool size 196591
Free buffers 194969
Database pages 1606
Buffer pool hit rate 1000 / 1000
- 含义:
- 缓冲池大小为 196,591 页(假设每页 16KB,则约 3GB),其中 194,969 页空闲,仅 1,606 页被占用。
- 缓冲池命中率 100%(
1000 / 1000
),表示所有查询均从内存中获取数据,未发生磁盘 I/O。
- 关键点:
- 高命中率说明缓冲池配置合理,数据库性能高效。
- 若命中率下降,需考虑增大
innodb_buffer_pool_size
。
6. 行操作统计(ROW OPERATIONS)
Number of rows inserted 7274221, updated 79, deleted 0, read 7300133
66.10 inserts/s, 0.00 updates/s, 0.00 deletes/s, 66.10 reads/s
- 含义:
- 累计插入 7,274,221 行,读取 7,300,133 行,更新/删除极少。
- 当前每秒插入 66.1 行,读取 66.1 行,无更新/删除操作。
- 关键点:
- 数据库以读写混合为主(插入和读取速率相近),但无更新操作,可能为只读或批量导入场景。
总结与建议
-
性能状态:
- 数据库运行平稳,无锁争用或 I/O 瓶颈,缓冲池命中率高。
- 高写入频率(
1,916,531
次写操作)需关注磁盘性能和日志配置。
-
潜在问题:
- 无事务活动可能表明数据库负载较低,或需检查应用是否正常提交事务。
- 若需优化,可考虑:
- 监控
innodb_buffer_pool_size
,确保缓冲池足够大(通常为物理内存的 60%-80%)。 - 检查日志文件(
ib_logfile*
)大小,避免频繁fsync
影响性能。
- 监控
-
扩展监控:
- 结合
SHOW GLOBAL STATUS
和SHOW PROCESSLIST
进一步分析连接和查询状态。
- 结合
怎么判断主备是正常的
以下是判断主备状态是否正常的常用命令和方法,适用于 MySQL 主从复制、Linux 服务器主备节点 和 Redis 主备集群 等场景:
1. MySQL 主从复制状态检查
命令:
-- 在从库(Slave)上执行
SHOW SLAVE STATUS\G
关键字段说明:
Slave_IO_Running: Yes
I/O 线程是否正常运行,负责从主库读取二进制日志。Slave_SQL_Running: Yes
SQL 线程是否正常运行,负责将日志应用到从库。Seconds_Behind_Master: 0
表示主从同步无延迟(值越大延迟越严重)。Last_Error
如果有错误信息(如Last_SQL_Error
),说明同步异常。
示例输出:
验证步骤:
-
主库检查:
SHOW MASTER STATUS;
- 确认
File
和Position
是否正常更新(主库有写入操作时)。
- 确认
-
从库检查:
SHOW SLAVE STATUS\G
- 确保
Slave_IO_Running
和Slave_SQL_Running
为Yes
。 - 检查
Seconds_Behind_Master
是否为0
。
- 确保
-
数据一致性验证:
- 在主库插入测试数据,检查从库是否同步成功。
2. Linux 服务器主备节点状态检查
命令:
-
通过 IP 地址判断主备(假设主节点绑定 VIP):
ip addr | grep -wq 192.168.1.102 && echo master || echo backup
- 如果输出
master
,表示当前节点为主节点;否则为备节点。
- 如果输出
-
检查进程状态(以 MySQL 为例):
ps -ef | grep mysqld
- 主节点通常运行完整的 MySQL 服务,备节点可能只运行监控或同步进程。
- 主节点通常运行完整的 MySQL 服务,备节点可能只运行监控或同步进程。
-
检查网络连通性:
ping <主节点IP> telnet <主节点IP> 3306
- 确保主备节点网络互通,端口可达。
3. Redis 主备状态检查
命令:
redis-cli info replication
关键字段说明:
role: master
当前节点是主节点。role: slave
当前节点是备节点。master_link_status: up
表示主备同步正常。slave
字段
显示从节点的 IP 和端口。
示例输出:
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.1.101,port=6379,state=online
验证步骤:
-
查看主备关系:
redis-cli info replication
- 确认主节点的
role
为master
,备节点的role
为slave
。 - 检查
master_link_status
是否为up
。
- 确认主节点的
-
数据同步验证:
- 在主节点写入数据,检查备节点是否同步成功。
4. 其他通用方法
1. 检查日志文件
-
MySQL:
查看error.log
或relay-log
是否有错误:tail -f /var/log/mysql/error.log
-
Redis:
查看redis-server.log
:tail -f /var/log/redis/redis-server.log
2. 使用脚本或工具
-
自定义监控脚本:
编写脚本定期执行SHOW SLAVE STATUS
或redis-cli info
,并检查关键字段。 -
第三方工具:
使用Zabbix
、Prometheus
等监控工具实时监控主备状态。
总结:主备正常的关键指标
系统类型 | 正常状态 |
---|---|
MySQL | Slave_IO_Running 和 Slave_SQL_Running 为 Yes ,Seconds_Behind_Master 为 0 。 |
Linux | 主节点绑定 VIP,进程状态正常,网络连通性良好。 |
Redis | role: master/slave 明确,master_link_status: up ,数据同步正常。 |
常见问题排查
- 主从延迟大:
- 优化网络带宽,或调整主库写入频率。
- 主从线程异常:
- 重启复制线程:
START SLAVE;
。
- 重启复制线程:
- 主备切换失败:
- 检查 VIP 绑定和故障转移配置(如
keepalived
)。
- 检查 VIP 绑定和故障转移配置(如
lscpu
lscpu
命令输出含义解析
1. CPU 基础信息
字段 | 值 | 说明 |
---|---|---|
Architecture | x86_64 | CPU 架构为 64 位 x86(即 Intel/AMD 64 架构)。 |
CPU op-mode(s) | 32-bit, 64-bit | 支持 32 位和 64 位操作系统。 |
Byte Order | Little Endian | 字节序为小端(x86 架构的标准)。 |
Vendor ID | GenuineIntel | CPU 制造商为 Intel。 |
Model name | Intel® Xeon® Silver 4214 | CPU 型号为 Intel Xeon Silver 4214,基准频率 2.20GHz。 |
2. 核心与线程信息
字段 | 值 | 说明 |
---|---|---|
CPU(s) | 16 | 系统中有 16 个逻辑 CPU(线程)。 |
Thread(s) per core | 1 | 每个核心 1 个线程,表示未启用超线程技术。 |
Core(s) per socket | 1 | 每个物理插槽(CPU 插槽)只有 1 个核心。 |
Socket(s) | 16 | 系统中有 16 个 CPU 插槽(虚拟化环境常见,物理机通常更少)。 |
On-line CPU(s) list | 0-15 | 当前在线的 CPU 编号范围为 0 到 15。 |
3. 虚拟化信息
字段 | 值 | 说明 |
---|---|---|
Hypervisor vendor | VMware | 系统运行在 VMware 虚拟化环境 中。 |
Virtualization type | full | 使用 全虚拟化 模式(虚拟机可直接运行原生操作系统)。 |
4. 缓存信息
缓存类型 | 大小 | 说明 |
---|---|---|
L1d cache | 32K | 每个核心的 L1 数据缓存为 32KB。 |
L1i cache | 32K | 每个核心的 L1 指令缓存为 32KB。 |
L2 cache | 1024K | 每个核心的 L2 缓存为 1MB。 |
L3 cache | 16896K | 所有核心共享的 L3 缓存为 16MB。 |
5. 其他关键指标
字段 | 值 | 说明 |
---|---|---|
CPU MHz | 2194.844 | 当前 CPU 运行频率为约 2.19GHz(接近标称的 2.20GHz)。 |
BogoMIPS | 4389.68 | 粗略的 CPU 性能指标(非实际性能指标)。 |
NUMA node(s) | 1 | 系统有 1 个 NUMA 节点(内存访问延迟较低的区域)。 |
Flags | fpu, sse, avx… | CPU 支持的功能标志(如浮点运算、SIMD 指令集等)。 |
总结
-
物理配置(虚拟化环境):
- 16 个逻辑 CPU(线程),无超线程技术。
- 16 个 CPU 插槽(虚拟化模拟),每个插槽 1 个核心。
- 总共 16 核(逻辑核),但实际物理核心数可能更少(需结合
lscpu
的physical id
字段进一步确认)。
-
性能特征:
- CPU 型号为 Intel Xeon Silver 4214,主频 2.20GHz。
- L3 缓存 16MB,适合中等负载任务(如数据库、虚拟化)。
-
虚拟化环境:
- 运行在 VMware 全虚拟化环境中,适合测试或开发场景。
-
适用场景:
- 适合轻量级服务部署(如 Web 服务器、小型数据库)。
- 需注意虚拟化可能导致的性能损耗(如 I/O 延迟)。
pgsql
进入使用psql命令进入超级用户
创建复制用户
您看到的输出是 PostgreSQL 中系统表 pg_roles
的字段信息,它表示数据库中所有角色(用户)的定义和权限。下面是对每一列的详细解释:
📌 字段说明
字段名 | 类型 | 含义 |
---|---|---|
rolname | name | 角色名称(用户名) |
rolsuper | bool | 是否是超级用户(t =是,f =否) |
rolinherit | bool | 是否继承角色的权限(默认为 t ) |
rolcreaterole | bool | 是否可以创建其他角色 |
rolcreatedb | bool | 是否可以创建数据库 |
rolcanlogin | bool | 是否可以登录(即是否是登录用户) |
rolreplication | bool | 是否具有复制权限(用于主从复制) |
rolconnlimit | int4 | 该角色同时连接数据库的最大连接数限制(-1 表示无限制) |
rolpassword | text | 加密后的密码(如果设置了密码) |
rolvaliduntil | timestamptz | 密码过期时间(如果设置了密码过期) |
rolbypassrls | bool | 是否绕过行级安全策略(Row Level Security) |
rolconfig | text[] | 用户的默认会话配置(如 search_path ) |
oid | oid | 该角色的唯一对象 ID(内部使用) |
✅ 举个例子:查看某个用户的信息
您可以执行以下命令查看具体某个用户的信息:
SELECT * FROM pg_roles WHERE rolname = 'repl_user';
输出可能如下(示例):
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid
-----------|----------|------------|---------------|-------------|-------------|----------------|--------------|-------------|---------------|--------------|-----------|-------
repl_user | f | t | f | f | t | t | 10 | ******** | | f | | 12345
说明:
- 用户名:
repl_user
- 不是超级用户
- 可以登录
- 有复制权限(用于主从复制)
- 最大连接数为 10
- 有密码(加密显示)
- 没有设置密码过期时间
- 不能创建数据库或角色
- 继承权限为开启
- 不绕过行级安全策略
📌 常见角色权限说明
权限 | 说明 |
---|---|
LOGIN | 可以通过客户端连接数据库 |
REPLICATION | 可以用于物理复制(如主从复制) |
CREATEDB | 可以创建数据库 |
CREATEROLE | 可以创建其他角色 |
SUPERUSER | 拥有所有权限,可以执行任何操作(慎用) |
✅ 创建用户时的参考
比如您之前执行的语句:
CREATE ROLE repl_user WITH
LOGIN
REPLICATION
CONNECTION LIMIT 10
ENCRYPTED PASSWORD 'repl_password';
就相当于设置了:
rolcanlogin = t
rolreplication = t
rolconnlimit = 10
rolpassword
为加密后的密码'repl_password'