Linux环境下如何查询数据库用户名密码信息?有具体方法吗?

更新于
2026-08-15 05:24:35
3阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

在 Linux 环境下查询数据库使用者名与密码的常见痛点

很多运维和开发人员在日常工作中会遇到以下困惑:

  • 忘记了 MySQL / PostgreSQL 的登录账号或密码,却找不到快速定位的入口。
  • 没有足够的权限,尝试执行查询时被程序拒绝。
  • 担心在生产环境直接暴露或修改密码会带来安全风险。
  • 不清楚不同数据库的配置文件位置,导致浪费大量时间去搜索。

操作前的必备条件

查看或修改数据库使用者名、密码信息通常需要 root 权限 或相应的数据库管理员权限。请务必更要遵循最小权限原则。

Linux环境下如何查询数据库用户名密码信息?有具体方法吗?

从方法一来看,直接读取配置文件

1. MySQL / MariaDB 配置文件

常用方法的观点是。

# 常见位置
/etc/my.cnf
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf

打开后查找 区块中的 user/Password字段:


user = my_user
password = my_password

2. PostgreSQL 配置文件

pg_hba.conf 用于控制客户端认证,实际使用者名保存在程序角色里而加密后的密码存放在 pg_authid 程序表中。从常用方法来看,

Linux环境下如何查询数据库用户名密码信息?有具体方法吗?
/etc/postgresql/<版本号>/main/pg_hba.conf
/var/lib/pgsql/data/pg_hba.conf

可以使用以下命令快速查看文件内容:

# 查看 pg_hba.conf 内容
cat /etc/postgresql/14/main/pg_hba.conf | less
# 或者
less /var/lib/pgsql/data/pg_hba.conf

从方法二来看。使用命令行工具查询程序表

1. MySQL 查询使用者表(*注意:密码已加密,无法直接还原明文*)

# 登录 MySQL
mysql -u root -p
# 查看所有使用者及其主机信息
SELECT User,Host,auntication_string FROM mysql.user;# 对于旧版本:
SELECT User,Host。Password FROM mysql.user;

2. PostgreSQL 查询角色信息

# 切换到 postgres 超级使用者
sudo -i -u postgres
# 使用 psql 交互式终端
psql
# 列出所有角色及其属性
\du+ -- 显示详细信息。包括 rolpassword 字段
SELECT rolname,rolpassword FROM pg_authid;\q -- 退出 psql

至于方法三,利用第三方图形化工具快速定位账号信息

If you prefer a UI approach。following tools can help you locate credentials stored in configuration files or system tables without manual editing:

  • MySQL Workbench: 在 “Server → Users and Privileges” 界面可以查看所有使用者及其加密密码摘要。
  • phpMyAdmin / phpPgAdmin: 登录后通过 “User accounts” 页面快速浏览账户列表。
  • DBeaver、DataGrip 等通用客户端工具: 支持直接连接后执行上述 SQL 查询。怎么说呢,
  • PgAdmin 4: 在 “Login/Group Roles” 中查看角色属性。一样只能看到哈希值,

至于方法四,通过程序账号间接获取数据库凭证

A few applications store database credentials in environment variables or dedicated secret files . 常见做法如下:

.env 或类似配置文件搜索示例

# 在项目根目录递归搜索关键字
grep -R -iE 'DB_USER|DB_PASSWORD|user|password' ./
# 示例输出:
DB_USER=app_user
DB_PASSWORD=SuperSecret123!

Kubernetes / Docker Secret 检索示例

# 查看 pod 中挂载的 secret 文件方法
kubectl exec -it my-pod -- cat /etc/secrets/db-cred
# Docker Compose 环境变量示例
docker-compose exec db env | grep MYSQL_ROOT_PASSWORD

安全警告与常用方法

  • No Plain‑Text Passwords in Production: 永远不要把明文密码写入代码库或共享目录;说起来,使用专门的秘密管理工具。
  • Avoid Direct Modification: 若非必要,请勿手动编辑 /etc/mysql/my.cnf//etc/postgresql/*/pg_hba.conf**;不过,使用官方提供的 ALTER USER / CREATE ROLE 命令来更改密码。
  • Password Rotation: 定期更换数据库账户密码。并更新对应应用配置,防止凭证泄漏。
  • Audit Logging: 开启审计日志,记录所有账户创建与修改操作。
  • Lack of Permissions?: 如果你没有足够权限。请联系程序管理员或 DBA 获取临时授权,而不是尝试提权。

完整步骤汇总

  1. 确认自己拥有 root 或相应 DB 管理员权限。

  • 先检查配置文件:
    • Mysql/MariaDB: /etc/my.cnf。/etc/mysql/my.cnf,/etc/mysql/mysql.conf.d/mysqld.cnf…​
    • 再看PQsql。/etc/postgresql//main/pg_hba.conf,/var/lib/pgsql/data/pg_hba.conf…​
    使用 | grep -iE 'user|password'
  • 如果配置文件未包含凭证。则进入 DB 客户端查询程序表:
    • 说到Mysql,
      # 登录后执行
      SELECT User,Host,aunticationstring FROM mysql.user;
    • 从PQsql来看。
      # 切换到 postgres 使用者
      sudo -i -u postgres
      psql -c "\du+" # 查看角色列表及 password hash
      psql -c "SELECT rolname,rolpassword FROM pgauthid;" # 高级查询,需要 superuser 权限
      
  • 如需图形化展示。可启动对应管理工具并通过 “Users/Roles” 页面快速定位。
  • 完成以上步骤后请务必将检索到的明文或哈希凭证妥善保存。并及时清理终端历史记录:

     免责声明: 这篇文章仅用于学习交流,切勿用于非法入侵或未授权访问。怎么说呢,任何因滥用这篇文章内容导致的安全事件,本人概不负责。如需进一步帮助,请联系贵司 DBA 或参考官方文档。更新时间这方面,2026‑08‑13 从作者来看。AI 助手

    标签:用户名

    在 Linux 环境下查询数据库使用者名与密码的常见痛点

    很多运维和开发人员在日常工作中会遇到以下困惑:

    • 忘记了 MySQL / PostgreSQL 的登录账号或密码,却找不到快速定位的入口。
    • 没有足够的权限,尝试执行查询时被程序拒绝。
    • 担心在生产环境直接暴露或修改密码会带来安全风险。
    • 不清楚不同数据库的配置文件位置,导致浪费大量时间去搜索。

    操作前的必备条件

    查看或修改数据库使用者名、密码信息通常需要 root 权限 或相应的数据库管理员权限。请务必更要遵循最小权限原则。

    Linux环境下如何查询数据库用户名密码信息?有具体方法吗?

    从方法一来看,直接读取配置文件

    1. MySQL / MariaDB 配置文件

    常用方法的观点是。

    # 常见位置
    /etc/my.cnf
    /etc/mysql/my.cnf
    /etc/mysql/mysql.conf.d/mysqld.cnf
    

    打开后查找 区块中的 user/Password字段:

    
    user = my_user
    password = my_password
    

    2. PostgreSQL 配置文件

    pg_hba.conf 用于控制客户端认证,实际使用者名保存在程序角色里而加密后的密码存放在 pg_authid 程序表中。从常用方法来看,

    Linux环境下如何查询数据库用户名密码信息?有具体方法吗?
    /etc/postgresql/<版本号>/main/pg_hba.conf
    /var/lib/pgsql/data/pg_hba.conf
    

    可以使用以下命令快速查看文件内容:

    # 查看 pg_hba.conf 内容
    cat /etc/postgresql/14/main/pg_hba.conf | less
    # 或者
    less /var/lib/pgsql/data/pg_hba.conf
    

    从方法二来看。使用命令行工具查询程序表

    1. MySQL 查询使用者表(*注意:密码已加密,无法直接还原明文*)

    # 登录 MySQL
    mysql -u root -p
    # 查看所有使用者及其主机信息
    SELECT User,Host,auntication_string FROM mysql.user;# 对于旧版本:
    SELECT User,Host。Password FROM mysql.user;

    2. PostgreSQL 查询角色信息

    # 切换到 postgres 超级使用者
    sudo -i -u postgres
    # 使用 psql 交互式终端
    psql
    # 列出所有角色及其属性
    \du+ -- 显示详细信息。包括 rolpassword 字段
    SELECT rolname,rolpassword FROM pg_authid;\q -- 退出 psql
    

    至于方法三,利用第三方图形化工具快速定位账号信息

    If you prefer a UI approach。following tools can help you locate credentials stored in configuration files or system tables without manual editing:

    • MySQL Workbench: 在 “Server → Users and Privileges” 界面可以查看所有使用者及其加密密码摘要。
    • phpMyAdmin / phpPgAdmin: 登录后通过 “User accounts” 页面快速浏览账户列表。
    • DBeaver、DataGrip 等通用客户端工具: 支持直接连接后执行上述 SQL 查询。怎么说呢,
    • PgAdmin 4: 在 “Login/Group Roles” 中查看角色属性。一样只能看到哈希值,

    至于方法四,通过程序账号间接获取数据库凭证

    A few applications store database credentials in environment variables or dedicated secret files . 常见做法如下:

    .env 或类似配置文件搜索示例

    # 在项目根目录递归搜索关键字
    grep -R -iE 'DB_USER|DB_PASSWORD|user|password' ./
    # 示例输出:
    DB_USER=app_user
    DB_PASSWORD=SuperSecret123!

    Kubernetes / Docker Secret 检索示例

    # 查看 pod 中挂载的 secret 文件方法
    kubectl exec -it my-pod -- cat /etc/secrets/db-cred
    # Docker Compose 环境变量示例
    docker-compose exec db env | grep MYSQL_ROOT_PASSWORD
    

    安全警告与常用方法

    • No Plain‑Text Passwords in Production: 永远不要把明文密码写入代码库或共享目录;说起来,使用专门的秘密管理工具。
    • Avoid Direct Modification: 若非必要,请勿手动编辑 /etc/mysql/my.cnf//etc/postgresql/*/pg_hba.conf**;不过,使用官方提供的 ALTER USER / CREATE ROLE 命令来更改密码。
    • Password Rotation: 定期更换数据库账户密码。并更新对应应用配置,防止凭证泄漏。
    • Audit Logging: 开启审计日志,记录所有账户创建与修改操作。
    • Lack of Permissions?: 如果你没有足够权限。请联系程序管理员或 DBA 获取临时授权,而不是尝试提权。

    完整步骤汇总

    1. 确认自己拥有 root 或相应 DB 管理员权限。

  • 先检查配置文件:
    • Mysql/MariaDB: /etc/my.cnf。/etc/mysql/my.cnf,/etc/mysql/mysql.conf.d/mysqld.cnf…​
    • 再看PQsql。/etc/postgresql//main/pg_hba.conf,/var/lib/pgsql/data/pg_hba.conf…​
    使用 | grep -iE 'user|password'
  • 如果配置文件未包含凭证。则进入 DB 客户端查询程序表:
    • 说到Mysql,
      # 登录后执行
      SELECT User,Host,aunticationstring FROM mysql.user;
    • 从PQsql来看。
      # 切换到 postgres 使用者
      sudo -i -u postgres
      psql -c "\du+" # 查看角色列表及 password hash
      psql -c "SELECT rolname,rolpassword FROM pgauthid;" # 高级查询,需要 superuser 权限
      
  • 如需图形化展示。可启动对应管理工具并通过 “Users/Roles” 页面快速定位。
  • 完成以上步骤后请务必将检索到的明文或哈希凭证妥善保存。并及时清理终端历史记录:

     免责声明: 这篇文章仅用于学习交流,切勿用于非法入侵或未授权访问。怎么说呢,任何因滥用这篇文章内容导致的安全事件,本人概不负责。如需进一步帮助,请联系贵司 DBA 或参考官方文档。更新时间这方面,2026‑08‑13 从作者来看。AI 助手

    标签:用户名