项目有这么个需求,一个表记录很多,到上千万条,
其中记录的是20个县的消费明细记录,
按照这20个县可以把这个大表分成20个表分区,
有个想法,是要对应建立20个用户,
每个用户只能看到他自己对应分区的内容,看不到其他分区的内容,
这样可以通过角色来设置吗?
如果角色不行通过什么办法能实现呢?
比较急啊,先谢谢大家~数据库是ORACLE 10G
其中记录的是20个县的消费明细记录,
按照这20个县可以把这个大表分成20个表分区,
有个想法,是要对应建立20个用户,
每个用户只能看到他自己对应分区的内容,看不到其他分区的内容,
这样可以通过角色来设置吗?
如果角色不行通过什么办法能实现呢?
比较急啊,先谢谢大家~数据库是ORACLE 10G
严谨些,可以考虑用Oracle的细粒度访问机制,如用安全策略dbms_rls包...
用分区和角色机制是想要将“用户与数据表中一部分数据对应”的这个工作交给ORACLE数据库来完成,
减少对客户端程序的修改,并期望使用ORACLE固有功能来获得有更高的效率,
当然用SQL是可以完全做到,考虑到查询效率等方面,还是要利用ORACLE的功能
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));