postgresql - 在 PostgreSQL 中为特定模式和表所有者创建表的过程是什么
问题描述
我是来自 Oracle 背景的 Postgres 新手。
我正在使用 pgAdmin4,在其中创建了一个名为my_db的数据库以及一个名为admin_schema的模式。
确保在my_db数据库中创建的所有新表都属于模式admin_schema和表所有者admin_owner的步骤是什么,我不确定如何创建?
我基本上不希望我创建的表属于模式名 PUBLIC 和表所有者 POSTGRES。
更新
要回答以下问题:
- 我在 Ubuntu 20.04 中使用 pgAdmin4,我假设我以用户 postgres 身份登录
- 我只有一台用户名为 postgres 的服务器
- 我目前没有名为 admin_owner 的用户或角色,因为不确定如何创建它?
- 不确定如何启动 pgAdmin 以便它使用用户:admin_owner?
- 我基本上希望我的所有表都由数据库 my_db 中的 admin_schema 架构下的 admin_owner 所有
解决方案
我目前没有名为 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以允许远程密码连接。
推荐阅读
- c++ - GCC 扩展内联汇编 - “mov 的指令后缀无效”
- python - 使用 python 登录 Facebook
- r - 在任何情况下都强制 geom_bar 不干扰 x 排序?
- javascript - vscode 中这种特定类型的 javascript 快捷方式是什么?(见图)和/或更重要的是:在哪里查看完整列表?
- firebase - Flutter Web Firebase Hosting XMLHttpRequest 报错(使用本地chrome浏览器(调试),或使用火狐没有错误)
- ruby-on-rails - 直接在 Selenium 上运行测试
- java - 将项目转换为 maven 时 POM.xml 中的插件标记出错
- excel - 如何在 Angular 中为 officejs 创建自定义函数
- git - git pull --all 不适用于工作树
- php - php left join with if else 以显示特定的 html 按钮标签