You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ubuntu终端用自定义超级用户rahi007创建本地可访问数据库

解决PostgreSQL终端访问及设置用户为数据库所有者的实操步骤

1. 先搞定终端连接问题

终端没法操作大概率是连接配置或身份验证的问题,按下面步骤来:

  • 切换到系统默认的PostgreSQL管理员用户:
    sudo su - postgres
  • 用rahi007身份尝试连接默认的postgres数据库:
    psql -U rahi007 -d postgres -h localhost
    如果报密码错误,先给rahi007设置密码:
    在postgres用户的psql会话里执行:ALTER USER rahi007 WITH PASSWORD 'your_strong_password';
  • 要是连接还是失败,检查pg_hba.conf配置:
    编辑配置文件(替换成你的PostgreSQL版本,比如14):
    sudo nano /etc/postgresql/14/main/pg_hba.conf
    找到127.0.0.1/32对应的行,把认证方式改成md5:
    host all all 127.0.0.1/32 md5
    保存后重启服务:
    sudo systemctl restart postgresql

2. 把rahi007设为数据库所有者

假设你要操作的数据库叫target_db(换成你实际的数据库名):

  • 方式一:通过psql命令行修改
    切换到postgres用户后进入psql:psql
    执行以下命令修改数据库所有者:
    ALTER DATABASE target_db OWNER TO rahi007;
    要是需要把数据库里的表、序列也转成rahi007所有(避免后续权限问题):
    ALTER SCHEMA public OWNER TO rahi007;
    ALTER ALL TABLES IN SCHEMA public OWNER TO rahi007;
    ALTER ALL SEQUENCES IN SCHEMA public OWNER TO rahi007;
    
  • 方式二:直接在终端单条命令执行
    切换到postgres用户后,运行:
    psql -c "ALTER DATABASE target_db OWNER TO rahi007;"

3. 验证配置是否生效

  • 用rahi007身份连接目标数据库:
    psql -U rahi007 -d target_db -h localhost
  • 查询数据库所有者:
    SELECT datname, datowner FROM pg_database WHERE datname = 'target_db';
    输出里datowner字段应该显示rahi007
  • 测试权限:创建一张测试表
    CREATE TABLE test (id INT);
    能成功创建就说明权限没问题

内容的提问来源于stack exchange,提问作者Raihanul Haque Rahi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:20:54