`
rq2_79
  • 浏览: 239805 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GREENPLUM介绍之数据库管理(四)-创建数据库和用户管理

 
阅读更多

GREENPLUM与ORACLE一样有着完全独立于操作系统的用户管理 系统,以及权限管理系统。首先我们介绍一下GP中的数据库 。 在GP初始化系统后,GP会自动创建出三个数据库postgre,template0,template1. 其中postgre用作系统内部数据的存放,我们既不要删除它,也不要修改它。template1是系统默认的数据,我们创建数据库时可以以 template1为模板,创建新的数据库。所以,如果有不希望其它数据库继承的对象,就不要在数据库template1中进行创建。GP中创建数据库的 语法非常简单,句法如下
CREATE DATABASE newname USING TEMPLATE tmplatedbname;
速 度非常快,这个过程中系统会生成相应的字典信息。如果没有指定using template子句,系统就使用template1数据库作为模板创建新数据库。我们也可以其它数据库为模板,创建新的数据库。template0数据 库是创建template1的模板,一般我们也不使用它创建应用对象。GP允许在一个GP SERVER中创建多个DATABASE。但是一个DATABASE只能属于一个SERVER。一个连接在同一时间点只能访问一个数据库。
    GP中也有SCHEMA的概念。SCHEMA本质就是一个数据库中有关联关系的对象集合,或者也可以理解成对象的命名空间。GP允许在一个数据库中创建多 个SCHEMA,但是一个SCHEMA只能属于一个数据库。在创建数据库时,系统自动创建一个称为PUBLIC的SCHEMA。如果自己需要创建 SCHEMA,其句法如下
CREATE SCHEMA schema_name;
一个SCHEMA中,不允许出现同名对象。但是不同的SCHEMA是允许对象同名的。所以很多SQL 访 问对象时可以在对象名前加SCHEMA作为前缀,说明对象出处。如果不加SCHEMA做前缀,访问对象,会话按指定的SCHEMA顺序搜索对象,默认的搜 索路径只有public,新建的schema不会加到。这也是现在用户在使用工具时常见的一类问题。由于默认SCHEMA搜索路径设置不正确,导致应用无 法访问到需要的对象。就像下面的过程
xjods=# create schema xjods;
CREATE SCHEMA
xjods=# create table xjods.t1(id numeric);
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
xjods=#
xjods=# select * from t1;
ERROR:  relation "t1" does not exist
LINE 1: select * from t1;

SCHEMA搜索路径的设置可以在会话中指定,可以在数据库层面指定,可以在用户层面指定,还可以在服务参数中指定。
在会话中指定,只对当前连接有效。
=> set search_path to 'myschema,public';

在数据库中指定,对特定数据库有效

=> alter database <dbname> set search_path to myschema,public

在用户层面设定,对的定用户的连接有效,比如

ALTER ROLE sally SET search_path TO myschema, public, pg_catalog;

想查看当前的schema,可以用如下命令
=> SELECT current_schema();
或者
=> SHOW search_path;

如果设置存在冲突,优先级是 会话设置 优先于 用户设置 优先于 数据库设置 优先于服务参数设置。
    一般而且言,我们可以理解数据库对应着应用,SCHEMA则对应着每个应用的模块。在具体数据库设置时,可以根据需求进行灵活设置。比如要简化备份 ,减少系统负载的话,就应该尽量减少数据库的创建。因为这样可以减少备份的数量,以及字典的信息。
   
    下面再来看GP中的用户。数据库的用户从本质上讲就是用于身份审核和权限管理的机制。与ORACLE一样GP也有完全独立于操作系统的用户管理模块。也就 是GP的用户和操作系统用户没有多大关系。在创建数据库时,系统会创建一个称为gpadmin的超级管理员(建议用来安装GP操作系统用户也是 gpadmin),默认该账号从服务器 登录时,可以走操作系统认证,不需要用户名密码。它可以完成所有操作。GP中创建用户的句法如下
    CREATE ROLE name [[WITH] option [ ... ]]
它的选项,指定了用户的身份认证,系统权限,以及资源限制等等 。具体选项如下
SUPERUSER | NOSUPERUSER
指定了用户是否是超级管理员,默认是NOSUPERUSER。 如果是超级管理员则没有访问限制。一般应用用户不要赋予这项权限。

CREATEDB | NOCREATEDB
指定了用户是否可以创建数据库。默认是NOCREATEDB

CREATEROLE | NOCREATEROLE
指定了用户是否可以创建新的用户,默认是NOCREATEROLE

CREATEEXTTABLE | NOCREATEEXTTABLE[ ( attribute='value'[, ...] ) ]
指定用户是否可以创建特定类型,特定协议的外部表。
可以指定的属性包括
type='readable'|'writable'
protocol='gpfdist'|'http'|'gphdfs'
如果使用file协议,或者execute协议的外部表,必须是超级管理员。
默认是 NOCREATEEXTTABLE

INHERIT | NOINHERIT
在GP中,没有独立的角色概念,用户既是角色,也是用户。因此当一个


LOGIN | NOLOGIN
设定用户是否有登录系统的权限。默认是NOLOGIN。一般用来管理权限的角色分配NOLOGIN权限。

CONNECTION LIMIT connlimit
限制并发连接的数量,默认值是-1,表示没有限制。在GP中有其它更合适的方式限制并发连接的数量,因此建议不要修改该设置。

[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
设置用户的口令,并指定在字典中存放口令是否要进行加密。

VALID UNTIL 'timestamp'
指定口令的生命周期。默认是永远不过期。

IN ROLE rolename [, ...]
向角色中添加新的成员角色,这样新建用户就成了一个组的概念。可以使用grant命令实现同样的效果

ADMIN rolename [, ...]
向角色中添加新角色时,使用with admin option选项。允许角色把其它角色的权限再授予其它角色。

RESOURCE QUEUE queue_name
为用户建立资源队列后,控制用户连接的资源消耗。一个用户只能分配一个资源队列。=# CREATE ROLE admin CREATEROLE CREATEDB;

GP没有独立的用户组或者角色概念。我们可以把一个用户赋予另外一个用户,从而实现角色概念,简化权限的管理。比如
=# CREATE ROLE admin CREATEROLE CREATEDB;
=# GRANT admin TO john, sally;
=# REVOKE admin FROM bob;
那么admin就是组角色,john,sally就是成员角色,成员角色从组角色继承系统权限

同样,对象的所有者拥有对象的所有权限,如果把对象权限赋予组角色,那么组角色的成员角色也会获取相关对象的访问权限。比如
=# GRANT ALL ON TABLE mytable TO admin;
=# GRANT ALL ON SCHEMA myschema TO admin;
=# GRANT ALL ON DATABASE mydb TO admin;
那么,admin的成员角色也会得到相应的对象访问权限。
GP支持的对象权限包括
Object Type                Privileges
Tables, Views, Sequences   SELECT
                           INSERT
                           UPDATE
                           DELETE
                           RULE
                           ALL
External Tables            SELECT
                           RULE
                           ALL
Databases                  CONNECT
                           CREATE
                           TEMPORARY | TEMP
                           ALL
Functions                  EXECUTE
Procedural Languages       USAGE
Schemas                    CREATE
                           USAGE
                           ALL

由 于GP没有提供SELECT/UPDATE/DELET ANY TABLE这样的系统权限,所以需要通过组角色进行模拟,因此会显得比ORACLE这样的数据库麻烦。另外,GP对行列访问控制的粒度只是到 Orange Book ‘C2’的安全级别,而不是B1级别。也就是访问控制只支持到对象级别,无法支持到行级和列级,但是可以通过视图的方法就行模拟控制。

分享到:
评论

相关推荐

    greenplum-cc-web-6.2.0-gp6-rhel7-x86-64.7z

    4. 用户管理:支持创建和管理多个用户,分配不同的访问权限,保障数据安全。 5. 日志查看:提供日志查看功能,方便排查问题和诊断错误。 三、使用技巧 1. 自定义视图:用户可以根据需求创建自定义视图,筛选和...

    Greenplum数据库权限管理1

    在Greenplum数据库管理系统中,权限管理是确保数据安全性和访问控制的重要机制。它允许管理员精确地控制不同用户和角色对数据库对象的访问权限,从而防止未经授权的数据访问或修改。 1.1 概述 Greenplum的权限系统...

    greenplum-db-6.13.0-rhel7-x86_64.zip

    《Greenplum数据库详解与安装指南》 Greenplum是一款高度可扩展的并行数据库系统,专为大数据分析设计。其基于MPP(大规模并行处理)架构,能够高效处理PB级别的数据,广泛应用于商业智能、数据分析等领域。该系统...

    greenplum-cc-web-3.3.3-LINUX-x86_64.zip

    Greenplum Command Center(简称GPCC)是Greenplum数据库系统中的一款重要管理工具,专为Greenplum 4(GP4)设计,提供了全面的可视化监控、管理和诊断功能。在“greenplum-cc-web-3.3.3-LINUX-x86_64.zip”这个...

    GREENPLUM介绍之数据库管理.docx

    ### GREENPLUM数据库管理...以上步骤覆盖了Greenplum数据库管理的关键方面,包括环境配置、服务启动与停止、状态查询、连接方式、用户管理以及示例系统的创建等。这些操作对于日常维护和管理Greenplum数据库至关重要。

    greenplum数据库jdbc驱动下载

    1. **连接管理**:创建、管理和关闭与Greenplum数据库的连接。 2. **SQL执行**:执行SQL查询,包括SELECT、INSERT、UPDATE、DELETE等。 3. **结果集处理**:处理查询返回的结果集,提供遍历、获取单个值或整个行的...

    greenplum-database管理员指南6.0.0.pdf

    最后,文档介绍了如何创建和管理数据库,包括使用数据库模板,创建数据库和查看数据库列表。管理员将学会如何修改现有的数据库属性,以满足不同的业务需求。 ### 结语 Greenplum Database管理员指南6.0.0是一个全面...

    greenplum-db-5.11.3-rhel7-x86_64.zip

    首先,我们关注到的"greenplum-db-5.11.3-rhel7-x86_64.zip"是Greenplum数据库的压缩包文件,包含了5.11.3版本的二进制安装程序和校验文件。"greenplum-db-5.11.3-rhel7-x86_64.bin"是主安装程序,用于在RHEL7系统上...

    greenplum-db-6.2.1-rhel7-x86_64.rpm.zip

    - **配置与初始化**:设置环境变量,初始化数据库,创建数据库用户和角色。 - **启动与验证**:启动Greenplum服务,验证安装是否成功,可通过运行`gpstart`和`gpdemo`等命令来检查。 4. **使用与管理** - **数据...

    greenplum-db-4.2.8.0-build-1-RHEL5-x86_64

    Greenplum数据库系统是一款高效的企业级并行数据仓库解决方案,它基于PostgreSQL,并扩展了其性能和可扩展性,适用于大数据分析和处理。本文将详细阐述如何在Red Hat Enterprise Linux 5(RHEL5)64位环境下安装`...

    greenplum4.3.7.3数据库安装_安装包_安装文档.zip

    - 运行初始化脚本:使用`gpinitsystem`脚本来创建数据库集群,配置主节点和段节点。 - 启动Greenplum:通过`gpstart`命令启动数据库服务。 4. **分布式安装**: - 多主机部署:在多个服务器上重复上述单机安装...

    greenplum-db-5.11.1-rhel6-x86_64.zip

    此外,安全管理和权限控制也是管理Greenplum数据库的重要环节,包括用户账户管理、角色权限设定以及数据加密等。 总之,Greenplum数据库5.11.1版提供了在Linux6环境下高效处理大数据的强大工具。通过深入理解其架构...

    greenplum-db-5.9.0-rhel7-x86_64

    5. 创建数据库用户:在RHEL7上,你需要创建一个用于运行Greenplum的系统用户,例如`gpadmin`,并将所有Greenplum相关的文件所有权分配给该用户。 6. 启动数据库服务:使用`gprestart`命令启动Greenplum数据库集群。...

    Greenplum数据库使用总结(5.11版本).pdf

    - **创建储存目录**:为Greenplum数据库创建必要的存储目录。 - **设置初始化配置文件**:配置Greenplum的初始化文件。 - **验证操作系统的设置**:确保操作系统的配置适合运行Greenplum。 - **初始化数据库**:...

    Greenplum_4.3.6数据库官方文档汇总合集.rar

    - 用户管理:阐述用户认证、授权、角色管理和权限控制机制。 - 安全策略:讨论如何配置SSL加密通信、防火墙规则,确保数据安全。 - 审计功能:解释日志记录和审计跟踪,帮助追踪系统活动和异常行为。 6. **故障...

    基于Greenplum Hadoop- 分布式平台的大数据解决方案18.定义数据库对象(8)-创建和装载分区表.zip

    定义数据库对象(8)-创建和装载分区表”中,我们关注的核心概念是数据库对象的管理和利用,特别是如何有效地创建和加载分区表。分区表是一种优化数据管理的技术,尤其在处理大量数据时,能显著提高查询效率和系统性能...

    Greenplum数据库管理手册

    《Greenplum数据库管理手册》是一本全面介绍Greenplum数据库管理系统的重要参考资料,适用于那些希望深入理解和使用这一高效大数据处理平台的专业人士。Greenplum是一个基于MPP(大规模并行处理)架构的开源数据库,...

    greenplum数据库 v5.8.1

    Greenplum支持用户和角色管理,可以设定细粒度的访问控制,确保数据安全。通过SQL命令,可以轻松管理用户权限,限制对敏感数据的访问。 **8. 监控与管理工具** Greenplum提供了名为gpmmon的监控工具,用于实时监控...

    greenplum.jar(gp数据库驱动jar包)

    在大数据处理和分析领域,Greenplum数据库凭借其高效、可扩展的特性备受青睐。作为一款基于 PostgreSQL 的大规模并行处理(MPP)数据库系统,Greenplum 提供了丰富的接口供开发者进行数据操作。其中,`greenplum.jar...

    greenplum-db-5.0.0-rhel7-x86_64.zip

    5. 创建管理员用户和数据库。 6. 配置安全设置,如防火墙规则和SSL证书(如果需要)。 7. 测试连接和运行简单的查询,验证安装成功。 在实际应用中,Greenplum的高效性能得益于其智能查询优化器。它能够分析SQL语句...

Global site tag (gtag.js) - Google Analytics