Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > POSTGRESQL 中如何隐藏存储过程
【标  题】:POSTGRESQL 中如何隐藏存储过程
【关键字】:POSTGRESQL
【来  源】:http://blog.csdn.net/trainee/archive/2006/10/10/1328451.aspx

POSTGRESQL 中如何隐藏存储过程

Your Ad Here

 POSTGRESQL(以下简称PG)是功能强大的开源数据库,在*NUX下表现出色,性能不逊于ORACLE。更主要的是它提供源代码,而且可进行自行修改,用于商业目的。

PG的存储过程统一以函数形式存在,调用的时候用SELECT FUNCTION_NAME(ARG...) 或 SELECT OUT_ARG FROM FUNCTION_NAME(IN_ARG...)形式,而不是用CALL语句。PG的函数有各种接口,如C,SQL,PLPGSQL、PLJAVA等,其中PLPGSQL功能最强,应用最广泛。

PG的系统表PG_CATALOG.PG_PROC存储着所有函数(包括内置函数)的各种定义,其中PLPGSQL的函数体是以源代码的形式存在,并对任何用户可读。因为PG对FUNCTION的GRANT权限只有EXCUTE项,没有SELECT项,所以任何最低权限的用户都可读到PLPGSQL函数的源代码,即使它没有执行权限。这导致业务流程的泄露。

若要阻止未经授权的用户偷窥函数代码,必须取消PG_CATALOG.PG_PROC系统表的全可读权限,改为某个角色可读,注意可读权限和可执行权限是不相关的。

请用PG的超级权限(默认为POSTGRES)进入:

 REVOKE ALL  ON pg_catalog.pg_proc   FROM  PUBLIC

GRANT SELECT ON pg_catalog.pg_proc  TO  XXX    -- XXX为可读的角色

这将阻止未经授权的用户偷窥函数代码,但超级用户和授权用户还是可以看到的。假如你是业务系统的设计商,不想让客户看到你所设计的函数代码,那只有加密了,那PG又是如何解密的呢?只能通过修改数据库源代码,重新定制数据库才能解决,过段时间,我将思路和代码奉献上(等到考完水平)。

 

SQL 语法快速入门:【上一篇】
Linux AS3中安装Oracle 9.2.0.4的安装步骤:【下一篇】
【相关文章】
  • linux下手动安装postgresql
  • 数据迁移 : 从PostgreSQL到Oracle
  • vsftpd+pam+postgresql(freebsd5.5)
  • 为什么选用PostgreSQL,而不是Oracle?(转)
  • Oracle 10g vs PostgreSQL 8 vs MySQL 5(转)
  • PostgreSQL的用户的情况(转)
  • postgresql好站(转)
  • [APP] PostgreSQL配置
  • DB2,PostgreSQL & MySQL
  • postgresql的昨天今天与明天(转)
  • 【随机文章】
  • XNA Framework?? waiting~~,waiting~~~
  • XF86Config导读
  • WebLogic上的Web Services安全
  • Linux 汇编语言开发指南[转]
  • java学习
  • VC 操作 SQL Server 主从表
  • 协议开发 中移动CMPP2.0协议API
  • OpenLDAP学习笔记
  • 《隔断里的猪》-3
  • 熊猫烧香案疑犯抓捕全程揭秘
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.