首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

Oracle最佳替代者PostgreSQL数据库的整体安全性

http://www.oklinux.cn  2010-01-03  51CTO.com    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

对这类威胁的反击很简单:不要让普通用户访问或创建任何内容。清单 1 展示了如何对一个表提供保护。


清单 1. 对表提供保护

postgres=# SET SESSION AUTHORIZATION postgres;SETpostgres=# CREATE ROLE user1 WITH LOGIN UNENCRYPTED PASSWORD '123';CREATE ROLEpostgres=# CREATE SCHEMA user1 CREATE TABLE t1(i int);CREATE SCHEMApostgres=# INSERT INTO user1.t1 VALUES(1);INSERT 0 1postgres=# GRANT USAGE ON SCHEMA user1 TO user1;GRANTpostgres=# SELECT I FROM user1.t1; i--- 2(1 row)postgres=# SET SESSION AUTHORIZATION user1;SETpostgres=> SELECT I FROM user1.t1;ERROR: permission denied for relation t1postgres=> SET SESSION AUTHORIZATION postgres;SETpostgres=# GRANT SELECT ON user1.t1 TO user1;GRANTpostgres=# SET SESSION AUTHORIZATION user1;SETpostgres=> SELECT I FROM user1.t1; i--- 2(1 row)


清单 2 演示了对 PUBLIC 模式的访问被禁止。


清单 2. 禁止角色 user1 创建任何实体

postgres=> SET SESSION AUTHORIZATION postgres;SETpostgres=# REVOKE ALL PRIVILEGES ON SCHEMA PUBLIC FROM user1;REVOKEpostgres=# SET SESSION AUTHORIZATION user1;SETThe error message of "ERROR: permission denied for schema user1" means that this defensive measure works:postgres=> CREATE TABLE X;ERROR: permission denied for schema user1


访问由其他用户控制的对象

如下面清单 3 所示的攻击媒介假设用户可以访问 PUBLIC 模式;例如,GRANT USAGE ON SCHEMA PUBLIC TO user1。它以下面的假设作为前提:

?所有用户在默认情况下都有权访问集群中的任何数据库。
?假设集群允许用户创建并操作 PUBLIC 模式中的所有实体。
?一个普通用户帐户有权访问系统目录。否则,用户帐户不能正常工作(固有的 PostgreSQL 服务器行为)。

清单 3. 收集有关表的信息

postgres=> SELECT * FROM user1.t2;ERROR: permission denied for relation t2postgres=> insert into user1.t2 values(10);ERROR: permission denied for relation t2postgres=>postgres=> \d List of relations Schema | Name | Type | Owner-------- ------ ------- ---------- user1 | t1 | table | postgres user1 | t2 | table | postgres(2 rows)postgres=> \d t? Table "user1.t1" Column | Type | Modifiers-------- --------- ----------- i | integer | Table "user1.t2" Column | Type | Modifiers-------- --------- ----------- i | integer |

共12页: 上一页 [1] 2 [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页

上一篇:Google手机发布会仿效苹果   下一篇:豆瓣开源数据存储系统BeansDB

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Oracle数据库实例两则
·在Linux下定时备份MySQL
·出现mysql max-connections问题解决
·Oracle 如何快速查找和删除重复记录
·Oracle Dataguard备库失败与主库响应测试
·Oracle简单stream一个用户单向复制配置
·Oracle小知识集锦
·2009 MySQL数据库学习者盛会
·深入解析Oracle参数及参数文件
·查看修改Oracle10G归档日志空间的限制
·Linux环境下给MySQL数据库文件打包流程记录
·MySQL 5.1.41释出
·Ubuntu 9.10 修改 MySQL 的 datadir
·在MySQL中修改表名的SQL语句
·Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
·MySQL知识学习之my.ini详解
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Oracle数据库实例两则
·在Linux下定时备份MySQL
·出现mysql max-connections问题解决
·Oracle 如何快速查找和删除重复记录
·Oracle Dataguard备库失败与主库响应测
·Oracle简单stream一个用户单向复制配置
·Oracle小知识集锦
·2009 MySQL数据库学习者盛会
·深入解析Oracle参数及参数文件
·查看修改Oracle10G归档日志空间的限制
·Linux环境下给MySQL数据库文件打包流程
·MySQL 5.1.41释出
  阅读排行
·MySQL导入导出.sql文件步骤
·Linux下安装Oracle数据库完整笔记
·Oracle建表过程初学
·Oracle 建立临时表语法及使用技巧
·Oracle面试题及答案整理
·Linux系统下启动MySQL的命令及相关知识
·MySQL中文乱码解决方案集锦
·Oracle10g RAC for Linux配置全过程
·Linux平台下配置MySQL主从复制
·手工配置Oracle 10G Enterprise Manage
·Linux平台下启动oracle 11g EM控制台
·RHEL5.1 下安装Oracle 10.2.0.1及常见
·Oracle数据库里查看表空间使用状况
·Linux下安装Oracle客户端
·VMware中在Linux下安装Oracle9i
网摘收藏: