当前位置: 首页 > news >正文

海口免费自助建站模板做网站还是做阿里

海口免费自助建站模板,做网站还是做阿里,花店网站开发设计的项目结构,万能的搜索引擎Schema概述 PostgreSQL 数据库集群包含一个或多个命名数据库。角色和一些其他对象类型在整个集群中共享。与服务器的客户端连接只能访问单个数据库中的数据#xff0c;该数据库在连接请求中指定。 用户不一定有权访问集群中的每个数据库。共享角色名称意味着不能在同一集群中…Schema概述 PostgreSQL 数据库集群包含一个或多个命名数据库。角色和一些其他对象类型在整个集群中共享。与服务器的客户端连接只能访问单个数据库中的数据该数据库在连接请求中指定。 用户不一定有权访问集群中的每个数据库。共享角色名称意味着不能在同一集群中的两个数据库中命名不同的角色;但是可以将系统配置为仅允许访问某些数据库。 数据库包含一个或多个命名架构而这些架构又包含表。架构还包含其他类型的命名对象包括数据类型、函数和运算符。相同的对象名称可以在不同的架构中使用而不会发生冲突;例如both 和 可以包含名为 的表。与数据库不同架构不是严格分离的如果用户具有访问权限则可以访问他们所连接到的数据库中任何架构中的对象。 可能想要使用架构的原因有以下几个 允许多个用户使用一个数据库而不会相互干扰。将数据库对象组织到逻辑组中使其更易于管理。第三方应用程序可以放入单独的架构中以便它们不会与其他对象的名称发生冲突。 架构类似于操作系统级别的目录只是架构不能嵌套。 若要在架构中创建或访问对象请编写一个由架构名称和表名称组成的限定名称并用点分隔 schema.table这适用于需要表名的任何位置包括表修改命令和以下章节中讨论的数据访问命令。为简洁起见我们只讨论表但同样的想法也适用于其他类型的命名对象例如类型和函数。 实际上更通用的语法 database.schema.table也可以使用但目前这只是为了形式上符合 SQL 标准。如果写入数据库名称则该名称必须与连接到的数据库相同。 因此若要在新架构中创建表请使用 CREATE TABLE myschema.mytable (... );创建Schema 命令 postgres# \help create schema Command: CREATE SCHEMA Description: define a new schema Syntax: CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ] CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ] CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ] CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_specificationwhere role_specification can be:user_name| CURRENT_ROLE| CURRENT_USER| SESSION_USERURL: https://www.postgresql.org/docs/16/sql-createschema.htmlpostgres# 测试 postgres# \c ci_database_test02 circledba; #切换到ci_database_test02数据库下 用户名为circledba Password for user circledba: You are now connected to database ci_database_test02 as user circledba. ci_database_test02 create schema circle_oa; # 创建模式circle_oa CREATE SCHEMA ci_database_test02 create schema circle_center;# 创建模式circle_center CREATE SCHEMA ci_database_test02 create schema circle_shop;# 创建模式circle_shop CREATE SCHEMA ci_database_test02 \dn # 查看模式List of schemasName | Owner ----------------------------------circle_center | circledbacircle_oa | circledbacircle_shop | circledbapublic | pg_database_owner (4 rows)ci_database_test02 再从pgAdmin看看 其中public是创建数据库时候自带的。 通常您需要创建其他人拥有的架构因为这是将用户的活动限制在定义明确的命名空间中的方法之一。其语法为 CREATE SCHEMA schema_name AUTHORIZATION user_name;您甚至可以省略架构名称在这种情况下架构名称将与用户名相同。 以pg_开头的架构名称保留用于系统目的用户无法创建。 公共模式 在前面的部分中我们在未指定任何架构名称的情况下创建了表。默认情况下此类表和其他对象会自动放入名为“public”的架构中。每个新数据库都包含这样的架构。因此以下内容是等效的 CREATE TABLE products ( ... ); CREATE TABLE public.products ( ... );查看用户Schema 限定名称的编写起来很繁琐通常最好不要将特定的架构名称连接到应用程序中。因此表通常由非限定名称引用这些名称仅由表名称组成。系统通过遵循搜索路径要查找的架构列表来确定哪个表。搜索路径中的第一个匹配表被视为所需的表。如果搜索路径中没有匹配项则会报告错误即使数据库中的其他架构中存在匹配的表名也是如此。 在不同架构中创建同名对象的能力使编写每次都引用完全相同对象的查询变得复杂。它还为用户提供了恶意或意外更改其他用户查询行为的可能性。由于查询中普遍存在非限定名称及其在 PostgreSQL 内部中的使用因此添加架构以有效地信任对该架构具有权限的所有用户。当您运行普通查询时能够在搜索路径的架构中创建对象的恶意用户可以控制并执行任意 SQL 函数就像您执行了它们一样。search_pathCREATE 搜索路径中命名的第一个架构称为当前架构。除了是第一个搜索的架构之外它还是在命令未指定架构名称时将在其中创建新表的架构。CREATE TABLE 若要显示当前搜索路径请使用以下命令 SHOW search_path;在默认设置中这将返回 search_path --------------$user, public第一个元素指定要搜索与当前用户同名的架构。如果不存在此类架构则忽略该条目。第二个元素指的是我们已经看到的公共架构。 搜索路径中存在的第一个架构是创建新对象的默认位置。这就是默认情况下在公共架构中创建对象的原因。在没有架构限定表修改、数据修改或查询命令的情况下在任何其他上下文中引用对象时将遍历搜索路径直到找到匹配的对象。因此在默认配置中任何非限定访问都只能引用公共架构。 设置默认Schema SET search_path TOmyschema,public;模式的权限 默认情况下用户无法访问他们不拥有的架构中的任何对象。若要允许这样做架构的所有者必须授予对架构的权限。默认情况下每个人都对架构具有该权限。要允许用户使用架构中的对象可能需要根据对象的需要授予其他权限。 还可以允许用户在其他人的架构中创建对象。若要允许这样做需要授予对架构的权限。 REVOKE CREATE ON SCHEMA public FROM PUBLIC;修改模式 命令 ci_database_test02 \help alter schema Command: ALTER SCHEMA Description: change the definition of a schema Syntax: ALTER SCHEMA name RENAME TO new_name ALTER SCHEMA name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } URL: https://www.postgresql.org/docs/16/sql-alterschema.htmlci_database_test02 测试 1.修改架构circle_center 的架构名为circle_blog ci_database_test02 alter schema circle_center rename to circle_blog; ALTER SCHEMA ci_database_test02 \dnList of schemasName | Owner --------------------------------circle_blog | circledbacircle_oa | circledbacircle_shop | circledbapublic | pg_database_owner (4 rows)ci_database_test02 2.修改架构circle_shop 的用户属主为postgres ci_database_test02 alter schema circle_shop owner to postgres; ERROR: must be able to SET ROLE postgres # 提示我们没有postgres权限,不让我们修改circledba只是个普通用户 ci_database_test02 \c - postgres #切换到数据库管理员postgres Password for user postgres: You are now connected to database ci_database_test02 as user postgres. ci_database_test02# alter schema circle_shop owner to postgres; #再次修改 ALTER SCHEMA ci_database_test02# \dnList of schemasName | Owner --------------------------------circle_blog | circledbacircle_oa | circledbacircle_shop | postgrespublic | pg_database_owner (4 rows)ci_database_test02# 看到circle_shop 的属主已经变为了postgres 删除Schema 命令 ci_database_test02# \help drop schema; Command: DROP SCHEMA Description: remove a schema Syntax: DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]URL: https://www.postgresql.org/docs/16/sql-dropschema.html ci_database_test02# 测试 删除名为cricle_shop的Schema ci_database_test02# drop schema circle_shop; DROP SCHEMA ci_database_test02# \dnList of schemasName | Owner --------------------------------circle_blog | circledbacircle_oa | circledbapublic | pg_database_owner (3 rows)ci_database_test02# 已经成功了 查看Schema列表 命令1 \dn 测试 ci_database_test02# \dnList of schemasName | Owner --------------------------------circle_blog | circledbacircle_oa | circledbapublic | pg_database_owner (3 rows)ci_database_test02# 命令2 SELECTpn.oid AS schema_oid,iss.CATALOG_NAME,iss.schema_owner,iss.SCHEMA_NAME FROMinformation_schema.schemata issINNER JOIN pg_namespace pn ON pn.nspname iss.SCHEMA_NAME WHERE iss.catalog_name [dbname]; 测试 ci_database_test02# SELECT pn.oid AS schema_oid, iss.CATALOG_NAME, iss.schema_owner, iss.SCHEMA_NAME FROM information_schema.schemata iss INNER JOIN pg_namespace pn ON pn.nspname iss.SCHEMA_NAME WHERE iss.catalog_name ci_database_test02;schema_oid | catalog_name | schema_owner | schema_name -----------------------------------------------------------------------2200 | ci_database_test02 | pg_database_owner | public13918 | ci_database_test02 | postgres | information_schema11 | ci_database_test02 | postgres | pg_catalog99 | ci_database_test02 | postgres | pg_toast16405 | ci_database_test02 | circledba | circle_blog16404 | ci_database_test02 | circledba | circle_oa (6 rows)ci_database_test02#
http://www.huolong8.cn/news/401266/

相关文章:

  • 做网站公司哪里好做网站要备案
  • 网站开发成本会计科目wordpress中title
  • wordpress站点标题美化开发网站建设公司
  • 南宁做网站设计方案差异基因做热图在线网站
  • 动态表情包在线制作网站怎么样建立一个网站
  • 住房和城乡建设部网站造价师管理咨询公司起名字
  • 长沙网站建设接单电话用网站做综合布线
  • 学校官网网站建设的现状分析外管局网站先支后收怎么做报告
  • 制作网站软件网站建设全部流程包括备案
  • 小米4路由器可以做网站嘛四川成都进出口贸易公司
  • 哪类小网站容易做贵州成品网站
  • so域名网站wordpress 付费主题
  • 如何做好网站推微信你的意义是什么小程序
  • 深圳比邻网站建设清远建设工程招投标网站
  • 网站项目策划方案wordpress虚线框
  • 网页图片不显示企业网站优化方案
  • 做网站推广怎么找客户耿马网站建设
  • 电影网站如何做seo优化旅游景区网站建设方案
  • 教材资源网站建设空调网站模版
  • 如何建设网站的外链设计师的个人网页设计
  • 房子装修网站怎么做外国网站流量
  • 网站还没上线怎么做品牌推广iis5建设网站
  • 汽车网站大全汽车网专做公司网站 大庆
  • 前端和网站开发的区别郑州官网制做
  • 网站平台建设工作汇报dede手机网站模板
  • 第三方公司做网站价格汉沽做网站
  • 一个网站要怎么做的吗网站建设教程网
  • 合肥做网站费用邵阳市网站建设
  • 音乐中文网站模板下载delphi做网站
  • 网站设计好做吗wordpress主题开发教程