首页 > 解决方案 > 在 PostgreSQL 中为特定模式和表所有者创建表的过程是什么

问题描述

我是来自 Oracle 背景的 Postgres 新手。

我正在使用 pgAdmin4,在其中创建了一个名为my_db的数据库以及一个名为admin_schema的模式。

确保在my_db数据库中创建的所有新表都属于模式admin_schema和表所有者admin_owner的步骤是什么,我不确定如何创建?

我基本上不希望我创建的表属于模式名 PUBLIC 和表所有者 POSTGRES。

更新

要回答以下问题:

标签: postgresqlubuntu-20.04

解决方案


我目前没有名为 admin_owner 的用户或角色,因为不确定如何创建它

创建用户,请以超级用户 ( postgres) 身份登录,然后运行:

create user admin_owner with password '******';

我基本上希望我的所有表都由数据库 my_db 中的 admin_schema 架构下的 admin_owner 所有

创建用户后,创建架构

create schema admin_schema 
   authorization admin_user; --<< this makes admin_user the owner of the schema. 

如果您不想为每个表引用加上架构名称的前缀,请更改管理员用户的搜索路径:

alter user admin_user  
   set search_path = admin_schema;

不确定如何启动 pgAdmin 以便它使用用户:admin_owner

在 pgAdmin(混淆地称为“服务器”)中创建一个新连接,指定admin_user用户名并提供您在创建用户时指定的密码。


根据您配置 Postgres 服务器的方式,您可能需要调整pg_hba.conf以允许远程密码连接。


推荐阅读