Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理模式,hadoop-14-
6.3.创建与管理模式
- 概述:DB内组织对象的一种逻辑结构,一个DB内可以有多个模式,在未指定模式时默认放置在public中,可以通过”\dn”方式查看数据库中现有模式;
|
testdw=# \dn List of schemas Name | Owner --------------------+--------- gp_toolkit | gpadmin information_schema | gpadmin pg_aoseg | gpadmin pg_bitmapindex | gpadmin pg_catalog | gpadmin pg_toast | gpadmin public | gpadmin (7 rows) |
- 创建模式:使用CREATESCHEMA命令,通过查看帮助如下所示:
|
testdw=# \h CREATE SCHEMA Command: CREATE SCHEMA Description: define a new schema Syntax: CREATE SCHEMA schemaname [ AUTHORIZATION username ] [ schema_element [ ... ] ] 将所有者设置为其他角色通过AUTHORIZTION CREATE SCHEMA AUTHORIZATION username [ schema_element [ ... ] ] |
- 访问模式的对象:schema.table
|
testdw=# CREATE SCHEMA sc01; CREATE SCHEMA testdw=# \dn List of schemas Name | Owner --------------------+--------- gp_toolkit | gpadmin information_schema | gpadmin pg_aoseg | gpadmin pg_bitmapindex | gpadmin pg_catalog | gpadmin pg_toast | gpadmin public | gpadmin sc01 | gpadmin (8 rows) testdw=# create schema sc02 authorization mavshuang; ERROR: permission denied for database testdw (seg1 slave2:40000 pid=5424) 提示testdw数据库中权限拒绝 testdw=# grant all on database testdw to mavshuang; 将testdw数据库的所有权限赋给mavshuang GRANT testdw=# create schema sc02 authorization mavshuang; CREATE SCHEMA testdw=# \dn List of schemas Name | Owner --------------------+----------- gp_toolkit | gpadmin information_schema | gpadmin pg_aoseg | gpadmin pg_bitmapindex | gpadmin pg_catalog | gpadmin pg_toast | gpadmin public | gpadmin sc01 | gpadmin sc02 | mavshuang 此时用户是mavshuang (9 rows) |
- 模式搜索路径:若不想通过指定模式名称的方式来搜索需要的对象,可以通过设置search_path的方式来实现,第一个模式为缺省。
|
testdw=# show search_path; search_path ---------------- "$user",public (1 row) |
- 通过ALTERDATABASE修改DB的模式搜索路径
|
testdw-# \h alter database Command: ALTER DATABASE Description: change a database Syntax: ALTER DATABASE name [ [ WITH ] option [ ... ] ] where option can be: CONNECTION LIMIT connlimit ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT } 通过此命令来修改DB的模式搜索路径 ALTER DATABASE name RESET parameter ALTER DATABASE name RENAME TO newname ALTER DATABASE name OWNER TO new_owner |
|
testdw=# alter database testdw set search_path to sc01,public,pg_catalog; 设置testdw数据库的搜索路径为sc01,public,pg_catalog; ALTER DATABASE testdw=# \q 修改完成后通过\q退出testdw数据库后重新登录 [gpadmin@master ~]$ psql -d testdw psql (8.2.15) Type "help" for help.
testdw=# show search_path; search_path -------------------------- sc01, public, pg_catalog (1 row) |
- 通过ALTER ROLE修改ROLE(User)的模式搜索路径:
|
testdw-# \h alter role Command: ALTER ROLE Description: change a database role Syntax: ALTER ROLE name RENAME TO newname ALTER ROLE name SET config_parameter {TO | =} {value | DEFAULT} ALTER ROLE name RESET config_parameter ALTER ROLE name RESOURCE QUEUE {queue_name | NONE} ALTER ROLE name [ [WITH] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER &nbs 您可能想查找下面的文章:最近更新的内容
|

