123
 123

Tip: 看不到本站引用 Flickr 的图片? 下载 Firefox Access Flickr 插件 | AD: 订阅 DBA notes --

2010-06-06 Sun

21:06 Security Enhanced PostgreSQL (4275 Bytes) » DBA@SKY-MOBI
当前,越来越多的应用程序使用到数据库的场景越来越多,使用数据库作为动态信息的保存等等。在这样的复杂环境下面,仅仅考虑单个组件的安全是不够的,应该考虑到全局的安全策略一致。2010年5月份举行的全球PostgreSQL数据库讨论大会就数据安全这个类别有专门的演讲《A secure web-application stack using SE-PostgreSQL》。包括将要在牛津大学举办的CHAR(10)会议中也有SE-PostgreSQL的专题演讲。 本文主要介绍数据库部分, PostgreSQL与SELinux的安全策略一致性设计方案和简单范例。 何为SE-PostgreSQL? Security-Enhanced PostgreSQL(简写SE-PostgreSQL) 是一个PostgreSQL内建的安全扩展。与SElinux一起提供自操作系统到数据库系统一致的精细化强制访问控制特性。 为何需要SE-PostgreSQL? 未使用强安全控制的RDBMS进程间通信实例图: SELinux 是操作系统特性,用于在被操作系统管理的所有文件上实施安全策略,包括文件,sockets,内部进程通信对象等等。保护机密信息不被泄露是SELinux的最重要的目标。尽管如此,如果信息通道没有相应的策略的话,信息泄露可能出现在信息通道环节。所见通常会说,整个系统的安全级别决定于最脆弱的信息交换通道。所以要确保整个系统的安全,必须建立系统一致性的安全策略就像SELinux所做的一样。 通常情况下,私有信息的隔离是在用户级别来隔离的。但是不得不考虑到的是内部进程通信,这些对于SELinux来说是不可见的。 为了避免这种不受控制的信息泄露,必须将SELinux的策略做到更加底层。比如RDBMS系统就是所谓的不受SELinux控制的底层。 SE-PostgreSQL可以利用SELinux特性控制这些不被SELinux控制的系统资源,就好象被操作系统使用SELinux管理一样。从而使整个系统的安全策略一致。 统一的信息流控制实例: 左边是传统的PostgreSQL,右边是SE-PostgreSQL. 在传统的PostgreSQL系统(并且操作系统使用了SELinux策略)中: 在系统级用户层面,当他往文件系统写数据的时候,数据被打上了安全标签。当底层用户需要访问这个在文件系统上的数据时,违反策略的话将不被允许访问。 在系统级用户层面,当他往数据库插入一条记录时,PostgreSQL不记录安全标签信息,所以的话底层用户可以有权限访问到这些记录。 在SE-PostgreSQL(并且操作系统使用了SELinux策略)中: 写入文件系统的情况与传统的PostgreSQL结果一致。 写入数据库时,记录将被打上安全标记,所以底层用户没有权限的情况下将不能访问到在SE-PostgreSQL中的资源。 因此在SE-PostgreSQL中,在整个数据流控制过程中使用了系统级一致的访问控制策略。 强访问控制(MAC): 传统的PostgreSQL有一致超级用户,类似操作系统的ROOT,可以访问,修改,删除任意数据库对象。 SE-PostgreSQL提供强访问控制特性,应用在所有的数据库客户端和所有用户上。 当MAC或数据库原有的GRANT/REVOKE控制的访问权限不能满足时,将无法访问到被访问的资源。 精细化访问控制(fine-grained access control): SE-PostgreSQL提供比传统PostgreSQL更加强大的精细化访问控制功能,包括列访问控制和行访问控制。 如图: 图上这张表一共包含6行记录,其中4行标记为unclassified,2行标记为secret,这种类似于SELinux的安全标签存储在表的系统列security_context上。当高层用户访问时可以看到6行,但是底层用户访问是带secret的两行将被忽略。 列级别访问控制,当用户访问不被授权的列时,访问被拒绝。 SE-PostgreSQL使用范例: 1. 行级访问控制 使用下列SQL在SystemLow-SystemHigh,unconfiged_t域创建范例表,函数。 CREATE TABLE genre ( gid     integer primary key, dsc     varchar (32) ); GRANT ALL ON genre TO PUBLIC; CREATE TABLE drink ( id      integer primary key, gid     integer references genre(gid), name    varchar(32), price   integer ); GRANT ALL ON drink TO PUBLIC; INSERT INTO genre (gid, [...]
19:43 恩墨科技备份恢复培训课程顺利结束 (3207 Bytes) » Oracle Life

作者:eygle 发布在 eygle.com

昨天,恩墨科技为期四天的备份恢复课程顺利结束,这是我们第一次开设备份恢复的课程,课程内容完全由恩墨科技定制而来,在培训过程中,收到了学员们的认同与好评,这样的定制课程我们将继续拓展下去。

目前,恩墨科技定制好的课程包括:性能优化、诊断案例、备份恢复、RAC集群等。
这些课程在未来都将按照大家的参与度,以周末班或者脱产班等方式开展。

为了加深学习和理解,我正在考虑将系列课程分解为2天的单元课程,然后以周末班的形式将授课周期拉长到一个月甚至数月,以加强大家的理解和消化,更可以进行学习后的培训答疑等等交互。

我们希望能够做出一点与众不同的培训课程。

感谢支持和参与这次培训的朋友门!

ACOUG活动

照例,我们出版了一份"恩墨科技"独家的证书,作为培训纪念:

Cert2.jpg我们将继续努力!



相关文章|Related Articles

评论数量(2)|Add Comments

本文网址:

2010-06-05 Sat

22:29 伪递归 (2522 Bytes) » DBA@SKY-MOBI
一个过程/函数/方法直接或间接调用自身的算法称为递归,在程序设计中使用很广泛,减少了程序代码量,使程序简单易懂,但是在实际运行中,其效率相对要慢一些,而且栈空间的使用也会造成一些问题 一般来讲,如果算法是可以递推的,则可以直接使用迭代进行处理,如果递归树中存在大量重复运算,则可以改为动态规划,这里讨论更通用的办法,用栈模拟来实现伪递归,理论上讲,所有的递归都可以通过栈模拟修改为伪递归,所以这里也借用了一些可以迭代的算法作为例子,另外,只讨论直接递归,间接递归的修改因为过于复杂而且实用性不高,不予考虑 首先要搞清楚递归的原理,简单地讲,一个函数调用另一个函数的时候,会将当前环境压栈,从函数返回时,会从栈中恢复调用时的环境,因此,我们只要做一个模拟栈来保存环境,并且修改调用和返回的方法即可 其次需要说明的一点是,这个办法并不会降低算法复杂度,和算法方面的改进比起来,就好比战术和战略的区别,因此很少在算法书中看到这类介绍,但是在实际开发中,这个办法的确可以解决一些问题,另外,几乎所有讲C的书都对goto深恶痛绝,但是为了使伪递归程序看起来清晰,我觉得还是goto最好,对于不支持goto的语言,写起来稍微有点麻烦 1 需要构建一个栈 2 每次递归调用的时候,将当前环境压入栈,然后更新环境,goto至函数开头 3 return的时候,如果栈空,则return,否则从栈中弹出之前的环境,并goto至递归调用结束的地方 上述3步是通用方式,实际情况要复杂一些 看一个简单的递归阶乘程序,几乎所有的递归教程都会拿它做例子 unsigned int f(unsigned int n) {     unsigned int t, r;     if (n <= 1)     {         return 1;     }     t = f(n – 1);     r = t * n;     return r; } 实际上写成return n <= 1 ? 1 : n * f(n – 1)会更简洁,但是为了分析和修改,拆成上面这样更好一点 当然这个算法可以直接用迭代,但是这里我们作为一个例子,按照上面3步实现其伪递归程序,其中关于栈的所有操作都进行了封装,没有具体展开: unsigned int f(unsigned int n) {     Stack stk;     unsigned r; recursion:     if (n <= 1)     [...]
08:48 A PostgreSQL DataBase Administrator POST from enova financial CORP. (1093 Bytes) » DBA@SKY-MOBI
最近在看PostgreSQL国际用户协会组织的演讲PPT,发现澳大利亚的一家和金融相关的公司的核心库已经从MYSQL转到PostgreSQL了。 最主要的理由是MYSQL数据完整性问题,扩容问题,容易在表类型和静默truncate上出错。 迁移历经2个月。 目前在运行的postgresql OLTP系统1.3TB数据量,平均640tps,峰值超过4000tps 活跃数据100-200GB 出报告的数据库用的是londiste做的slave库 硬件系统如下: Sept 2007 – 300GB, 4x dual-core, 32GB Oct 2008 – 800GB, 4x 4-core, 96GB Nov 2009 – 1TB, 4x 6-core, 192GB 。 这个消息对于正在使用和将要使用POSTGRESQL的公司来说是一个鼓舞,能够得到金融行业的认可非常的不错。 这家公司的CIO简介(2010全球年度最优秀技术领导者的TOP25之一) http://www.infoworld.com Mark Friedgan  CIO, Enova Financial Over the past 18 months Enova Financial CIO Mark Friedgan has moved much of the company’s technology from proprietary systems to open source ones. For example, he replaced a call center platform [...]
07:28 关于SSD测试的几篇文章(推荐阅读) (2733 Bytes) » dbthink

这两天看到了多篇关于SSD在MySQL中的应用的测试, 感觉非常不错..

下面的内容摘自上面来自slideShare的pdf文件.
基本结论如下

  • SSD is extremely good at random reads
  • SSD is very good at random writes
  • HDD is good enough at sequential reads/writes
  • No strong reason to use SSD for sequential writes

简单翻译

  • SSD 有非常好的随机读能力
  • SSD 有很好的随机写能力
  • HDD 对于顺序读写的场景来讲已经足够好
  • 没有很好的理由来使用SSD到顺序写的场景

其他几篇不错的关于此的文章.
An Overview of Flash Storage for Databases
How Solid state Technologies are Transforming MySQL Server Performance and the Datacenter Architectures

Understanding the Role of IO As a Bottleneck

FlashCache: tpcc workload

FlashCache: tpcc workload with FusionIO card as cache

No related posts.

00:38 AWStats 7.0 发布, Linux下的安装配置使用备忘 (781 Bytes) » 车东[Blog^2]
5月25日,Eldy发布了AWStats的7.0版本,从界面上看主要的变化是很多统计图使用了Google图表API生成; 在Linux的安装请参考AWStats安装笔记, 此次更新后的相关配置修改都放到补充库里了; 包含chedong.com的awstats配置样例:awstats.chedong.conf 通用配置文件样例: coommon.conf 搜索引擎和蜘蛛定义更新:...

2010-06-04 Fri

22:53 Oracle10g using emca config dbconsole (1471 Bytes) » DBA@SKY-MOBI
在grid control没有出来之前,ORACLE数据库的监控和管理可以通过dbconsole来完成。 有了dbconsole,对数据库性能和是否需要升级硬件等等的把控就显得轻松很多,否则的话还需要借助其他的监控工具,如cacti,nagios,hq等等。 在创建数据库的时候如果没有选择安装EM,那么后期如果需要配置dbconsole的话,可以通过emca命令来完成。 下面来看看一个简单的配置过程: 1. 首先要修改一下数据库参数,以满足dbconsole的需求。 alter system set shared_pool_size=80M scope=both; alter system set job_queue_processes=1 scope=both; 2. 找几个没有被占用的端口 3. 创建资料库,配置agent和dbconsole,启动 emca -config dbcontrol db -repos create -silent -HOST digoal.sky-mobi.com.hz -SID digoal -PORT 1521 -ORACLE_HOME /opt/oracle/product/10.2.0/db_1 -DBSNMP_PWD oracle -SYSMAN_PWD oracle -SYS_PWD oracle -DBCONTROL_HTTP_PORT 8003 -AGENT_PORT 8004 -RMI_PORT 8005 -JMS_PORT 8006 说到创建资料库,配置agent和dbconsole,马上又看到了两年前设计的监控系统的影子。http://blog.163.com/digoal@126/blog/static/16387704020105444545420/  所以IT很多东西其实是相通的。 4. 启动dbconsole emctl start dbconsole 5. 停止dbconsole Emctl stop dbconsole 具体的语法可以参考: 【参考】 emca –help /opt/oracle/product/10.2.0/db_1/bin/emca [operation] [mode] [dbType] [flags] [parameters] -h | [...]