oracle cid=,oracle非系统用户

新环境,新任务:

基于windows Oracle10g的原型环境,在linux下建一个测试库。库只有几十个G,但麻烦的是这个数据库中有将近700个用户。

怎么去创建这个测试库呢?首先想到的还是数据泵EXPDP/IMPDP

1. 在Linux下装一个与windos版本一致的oracle。

2. 用数据泵expdp在windows下导出所有数据。

3. 在linux上用impdp导入windos上导出的数据。

一条expdp/impdp就可以把所有用户的数据都导出/导入。

但麻烦的是现在有将近700个用户。如何确认那些用户需要在测试库上新建,以及如何给这些用户分配

对象权限,角色权限,系统权限,及表空间限额反倒是一个麻烦的问题。

首先确认一下oracle系统自带的用户。SQL> SELECT CID, CNAME, NAME

2    FROM (SELECT CID, CNAME, SCHEMA#

3            FROM SYS.REGISTRY$

4          UNION ALL

5          SELECT A.CID, CNAME, B.SCHEMA#

6            FROM SYS.REGISTRY$ A, SYS.REGISTRY$SCHEMAS B

7           WHERE A.CID = B.CID) A,

8         SYS.USER$ B

9   WHERE A.SCHEMA# = B.USER#;

在DBA_USERS中排除oracle系统自带的用户,和一些默认表空间是SYSAUX,SYSTEM等表空间的用户后,

基本上就可以确定哪些是我们需要重建的用户。

一般我不会把业务用户建在USES表空间下,所以把USERS表空间也排除了。

SQL> SELECT USERNAME, CREATED, DEFAULT_TABLESPACE

2    FROM DBA_USERS D

3   WHERE USERNAME NOT IN

4         (SELECT NAME

5            FROM (SELECT SCHEMA#

6                    FROM SYS.REGISTRY$

7                  UNION ALL

8                  SELECT B.SCHEMA#

9                    FROM SYS.REGISTRY$ A, SYS.REGISTRY$SCHEMAS B

10                   WHERE A.CID = B.CID) A,

11                 SYS.USER$ B

12           WHERE A.SCHEMA# = B.USER#)

13  AND    D.default_tablespace NOT IN('SYSAUX','SYSTEM','USERS') 14   ORDER BY 3, 2;

确认了那些用户需要新建,就可以通过数据字典来生成新建用户及分配权限,角色的脚本了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值