网站建设产品话术,免费做苗木的网站,工程技术,如何进行课程中心网站建设文章目录 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA34.1 语法格式34.2 参数说明34.3 示例 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA
SCHEMA又称作模式。通过管理SCHEMA#xff0c;允许多个用户使用同一数据库而不相互干扰#xff0c;可以将数据库对象… 文章目录 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA34.1 语法格式34.2 参数说明34.3 示例 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA
SCHEMA又称作模式。通过管理SCHEMA允许多个用户使用同一数据库而不相互干扰可以将数据库对象组织成易于管理的逻辑组同时便于将第三方应用添加到相应的SCHEMA下而不引起冲突。
每个数据库包含一个或多个SCHEMA。数据库中的每个SCHEMA包含表和其他类型的对象。数据库创建初始默认具有一个名为PUBLIC的SCHEMA且所有用户都拥有此SCHEMA的USAGE权限只有系统管理员和初始化用户可以在public Schema下创建普通函数、聚合函数、存储过程和同义词对象只有初始化用户可以在public Schema下创建操作符其他用户即使赋予create权限后也不可以创建上述五种对象。可以通过SCHEMA分组数据库对象。SCHEMA类似于操作系统目录但SCHEMA不能嵌套。
相同的数据库对象名称可以应用在同一数据库的不同SCHEMA中而没有冲突。例如a_schema和b_schema都可以包含名为mytable的表。具有所需权限的用户可以访问数据库的多个SCHEMA中的对象。
通过CREATE USER创建用户的同时系统会在执行该命令的数据库中为该用户创建一个同名的SCHEMA。
34.1 语法格式 创建SCHEMA CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] ;修改SCHEMA 修改模式的名称。 ALTER SCHEMA schema_name RENAME TO new_name;修改模式的所有者。 ALTER SCHEMA schema_name OWNER TO new_owner;删除SCHEMA及其对象。 DROP SCHEMA schema_name;不要随意删除pg_temp或pg_toast_temp开头的模式这些模式是系统内部使用的如果删除可能导致无法预知的结果。
34.2 参数说明 schema_name 模式名称。 须知 模式名不能和当前数据库里其他的模式重名。 模式的名称不可以“pg_”开头。 取值范围字符串要符合标识符的命名规范。 AUTHORIZATION user_name 指定模式的所有者。当不指定schema_name时把user_name当作模式名此时user_name只能是角色名。 取值范围已存在的用户名/角色名。 schema_element 在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。 子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。 说明 如果当前搜索路径上的模式中存在同名对象时需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。 34.3 示例 创建一个属于用户user1的模式。 创建一个用户user1。 openGauss# CREATE USER user1 IDENTIFIED BY XXXXXXXX;
CREATE ROLE根据用户名创建模式。 openGauss# CREATE SCHEMA test AUTHORIZATION user1;
CREATE SCHEMA修改模式test的名称为test1。 openGauss# ALTER SCHEMA test RENAME TO test1;
ALTER SCHEMA修改模式的所有者。 创建一个用户user2。 openGauss# CREATE USER user2 IDENTIFIED BY XXXXXXXXX;
CREATE ROLE修改模式 test1的所有者为user2。 openGauss# ALTER SCHEMA test1 OWNER TO user2;
ALTER SCHEMA查看当前搜索路径 openGauss# SHOW SEARCH_PATH;search_path
----------------$user,public
(1 row)更改当前会话的默认Schema。 openGauss# SET SEARCH_PATH TO test1, public;
SET删除SCHEMA及其对象。 openGauss# DROP SCHEMA test1;
DROP SCHEMA点赞你的认可是我创作的动力 ⭐️ 收藏你的青睐是我努力的方向 ✏️ 评论你的意见是我进步的财富