在 PostgreSQL 中为特定模式和 table 所有者创建 table 的过程是什么
What is the process to create tables in PostgreSQL for a specific schema and table owner
我是 Postgres 的新手,有 Oracle 背景。
我正在使用 pgAdmin4,我在其中创建了一个名为 my_db 的数据库以及一个名为 admin_schema[=34 的模式=].
确保在 my_db 数据库中创建的所有新 table 属于架构 [= 的步骤是什么? 46=] 和 table 所有者 admin_owner,我不确定如何创建?
我基本上不想要我创建的属于架构名称 PUBLIC 和 tableowner POSTGRES 的 tables。
已更新
回答以下问题:
- 我在 Ubuntu 20.04 中使用 pgAdmin4,我假设我正在以用户 postgres
登录
- 我只有一台用户名为 postgres 的服务器
- 我目前没有名为 admin_owner 的用户或角色,因为不确定如何创建它?
- 不确定如何启动 pgAdmin 以便它使用用户:admin_owner?
- 我基本上希望我所有的 table 在数据库 my_db
中属于 admin_schema 架构下的 admin_owner
作为 Oracle 用户,您自然会对模式感到困惑。模式与用户不同。唯一的联系是模式(像所有其他数据库对象一样)有一个所有者。特别是,tables 不能属于模式,它们可以(逻辑上)位于模式中。
要让 table 属于某个用户,请以该用户身份登录数据库并创建 table。对象属于创建它的用户。
要将 table 放入某个架构中,请使用架构限定 table 名称:
CREATE TABLE admin_schema.table (...);
I currently do not have a user or role called admin_owner as unsure how to create this
对于 create 用户,以超级用户 (postgres
) 身份登录,然后 运行:
create user admin_owner with password '******';
I basically want all my tables to be owned by admin_owner under the schema of admin_schema within the database my_db
创建用户后,创建the schema:
create schema admin_schema
authorization admin_user; --<< this makes admin_user the owner of the schema.
如果您不想在每个 table 引用前添加架构名称,请为管理员用户更改 search path:
alter user admin_user
set search_path = admin_schema;
Unsure how to start pgAdmin so that it uses the user: admin_owner
在 pgAdmin(容易混淆地称为“服务器”)中创建一个新连接,指定 admin_user
作为用户名并提供您在创建用户时指定的密码。
根据您配置 Postgres 服务器的方式,您可能需要调整 pg_hba.conf 以允许远程密码连接。
我是 Postgres 的新手,有 Oracle 背景。
我正在使用 pgAdmin4,我在其中创建了一个名为 my_db 的数据库以及一个名为 admin_schema[=34 的模式=].
确保在 my_db 数据库中创建的所有新 table 属于架构 [= 的步骤是什么? 46=] 和 table 所有者 admin_owner,我不确定如何创建?
我基本上不想要我创建的属于架构名称 PUBLIC 和 tableowner POSTGRES 的 tables。
已更新
回答以下问题:
- 我在 Ubuntu 20.04 中使用 pgAdmin4,我假设我正在以用户 postgres 登录
- 我只有一台用户名为 postgres 的服务器
- 我目前没有名为 admin_owner 的用户或角色,因为不确定如何创建它?
- 不确定如何启动 pgAdmin 以便它使用用户:admin_owner?
- 我基本上希望我所有的 table 在数据库 my_db 中属于 admin_schema 架构下的 admin_owner
作为 Oracle 用户,您自然会对模式感到困惑。模式与用户不同。唯一的联系是模式(像所有其他数据库对象一样)有一个所有者。特别是,tables 不能属于模式,它们可以(逻辑上)位于模式中。
要让 table 属于某个用户,请以该用户身份登录数据库并创建 table。对象属于创建它的用户。
要将 table 放入某个架构中,请使用架构限定 table 名称:
CREATE TABLE admin_schema.table (...);
I currently do not have a user or role called admin_owner as unsure how to create this
对于 create 用户,以超级用户 (postgres
) 身份登录,然后 运行:
create user admin_owner with password '******';
I basically want all my tables to be owned by admin_owner under the schema of admin_schema within the database my_db
创建用户后,创建the schema:
create schema admin_schema
authorization admin_user; --<< this makes admin_user the owner of the schema.
如果您不想在每个 table 引用前添加架构名称,请为管理员用户更改 search path:
alter user admin_user
set search_path = admin_schema;
Unsure how to start pgAdmin so that it uses the user: admin_owner
在 pgAdmin(容易混淆地称为“服务器”)中创建一个新连接,指定 admin_user
作为用户名并提供您在创建用户时指定的密码。
根据您配置 Postgres 服务器的方式,您可能需要调整 pg_hba.conf 以允许远程密码连接。