请教表分区可否跟用户建立关系

joeli60 2008-07-23 06:42:30
项目有这么个需求,一个表记录很多,到上千万条,
其中记录的是20个县的消费明细记录,
按照这20个县可以把这个大表分成20个表分区,
有个想法,是要对应建立20个用户,
每个用户只能看到他自己对应分区的内容,看不到其他分区的内容,
这样可以通过角色来设置吗?
如果角色不行通过什么办法能实现呢?
比较急啊,先谢谢大家~

数据库是ORACLE 10G
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joeli60 2008-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 diaowf 的回复:]
--先建立一个永久表空间
CREATE TABLESPACE TEST
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ACCP\TEST.ora' SIZE 5M AUTOEXTEND
ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
-- 再建立一个临时 表空间
CREATE
TEMPORARY TABLESPACE MYTMP TEMPFILE
'D:\ORACLE\ORADATA\ACCP\MYTMP.ora' SIZE 5M EXTENT MANAGEMENT
LOCAL UNIFORM SIZE 1M
--建用户
create user test i…
[/Quote]
如何授权让某个用户只能操作一个特定的表空间?
joeli60 2008-07-24
  • 打赏
  • 举报
回复
补充一下啊,
用分区和角色机制是想要将“用户与数据表中一部分数据对应”的这个工作交给ORACLE数据库来完成,
减少对客户端程序的修改,并期望使用ORACLE固有功能来获得有更高的效率,
当然用SQL是可以完全做到,考虑到查询效率等方面,还是要利用ORACLE的功能
diaowf 2008-07-24
  • 打赏
  • 举报
回复
--先建立一个永久表空间
CREATE TABLESPACE TEST
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ACCP\TEST.ora' SIZE 5M AUTOEXTEND
ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
-- 再建立一个临时 表空间
CREATE
TEMPORARY TABLESPACE MYTMP TEMPFILE
'D:\ORACLE\ORADATA\ACCP\MYTMP.ora' SIZE 5M EXTENT MANAGEMENT
LOCAL UNIFORM SIZE 1M
--建用户
create user test identified by t123
default tablespace test --指定永久表空间
temporary tablespace mytmp; --指定临时表空间
--授权
grant connect,resource to test;
--连接
connect test/t123;
create table t(xh number(2));
njhart2003 2008-07-23
  • 打赏
  • 举报
回复
简单些,可以考虑用视图。
严谨些,可以考虑用Oracle的细粒度访问机制,如用安全策略dbms_rls包...
oracledbalgtu 2008-07-23
  • 打赏
  • 举报
回复
sql实现啊,既然可以安装一定的条件分区,那就把分区条件加到对应的sql中就ok了。


[Quote=引用楼主 joeli60 的帖子:]
项目有这么个需求,一个表记录很多,到上千万条,
其中记录的是20个县的消费明细记录,
按照这20个县可以把这个大表分成20个表分区,
有个想法,是要对应建立20个用户,
每个用户只能看到他自己对应分区的内容,看不到其他分区的内容,
这样可以通过角色来设置吗?
如果角色不行通过什么办法能实现呢?
比较急啊,先谢谢大家~

数据库是ORACLE 10G
[/Quote]

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧