












你的核心诉求
postgres)交给外部或测试程序,而是想单独为某些库设置一套专属密码。demo)只能访问以特定前缀(如 demo_)命名的数据库,且无法触碰主库或系统库。demo 过高的权限(如全局创建新数据库的特权)。踩坑复盘(为什么 PG 感觉繁琐)
GRANT ... ON demo_%,权限必须按库、按表显式授权。demo 连进去后报 42501 permission denied。最终最佳实践方案(一劳永逸版)
只要遵循 “管理员建空壳,demo 自己搬家具” 的原则,后续再做类似的库克隆,只需两分钟且不需要背任何赋权 SQL:
第一步:创建受限用户(仅需一次)
用管理员执行,创建一个只用于特定业务的普通账号:
CREATE USER demo WITH PASSWORD '你的强密码';
第二步:管理员建空库并直接指定归属
每次需要基于老库给 demo 派生新库时,管理员仅负责建一个空库,把产权直接写成 demo:
CREATE DATABASE demo_blog OWNER demo;
(这样 demo 依然没有全局建库权限,安全可控。)
第三步:以 demo 的身份导入数据
在 Navicat 中使用 阿里云-demo用户 连接这个新库 demo_blog,执行数据传输或运行建表迁移脚本:
demo 亲自导入的,库内所有表、视图、序列天然归 demo 所有。demo 账号连接,查表、增删改查畅通无阻,彻底告别权限报错。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。