本文共 874 字,大约阅读时间需要 2 分钟。
模式(Schema)在PostgreSQL中是一个组织数据库对象的重要层级。一个模式可以包含表、视图、序列、函数、数据类型等多种对象。与数据库不同,模式之间并非严格隔离,用户可以根据权限访问任意模式中的对象。
通过CREATE SCHEMA
命令创建模式,例如:
CREATE SCHEMA myschema;
创建完成后,模式可以拥有其自身的逻辑对象。
PostgreSQL默认为每个数据库创建一个名为public
的模式。操作命令如CREATE TABLE
若未指定模式,等同于public
模式下的对象。
模式的所有者需赋予USAGE权限让用户查看对象。例如:
GRANT ALL ON SCHEMA myschema TO public;
赋予特定权限时,需根据对象类型选择权限项,如表的INSERT, SELECT
等。
创建角色并绑定模式:
CREATE ROLE myschema LOGIN PASSWORD '123456';CREATE SCHEMA myschema AUTHORIZATION myschema;
登录时使用角色名,如:
psql -d MyTest -U myschema
删除模式及其所有对象时,使用CASCADE
选项:
DROP SCHEMA myschema CASCADE;
PostgreSQL通过搜索路径定位对象,类似于Linux的$PATH。当前模式总是第一位,若未找到,查找下一个模式。设置搜索路径:
SET search_path TO myschema, public;
查看当前搜索路径:
SHOW search_path;
通过以上方法,模式管理变得简便有效,助力数据库的组织与维护。
转载地址:http://lrywk.baihongyu.com/