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

解决方案 »

  1.   

    sql实现啊,既然可以安装一定的条件分区,那就把分区条件加到对应的sql中就ok了。
      

  2.   

    简单些,可以考虑用视图。
    严谨些,可以考虑用Oracle的细粒度访问机制,如用安全策略dbms_rls包...
      

  3.   

    补充一下啊,
    用分区和角色机制是想要将“用户与数据表中一部分数据对应”的这个工作交给ORACLE数据库来完成,
    减少对客户端程序的修改,并期望使用ORACLE固有功能来获得有更高的效率,
    当然用SQL是可以完全做到,考虑到查询效率等方面,还是要利用ORACLE的功能
      

  4.   

    --先建立一个永久表空间 
    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));