跨表空间访问数据

创建自己的用户名,在自己的用户名下建表,写存储过程,为了方便管理,不与其他用户公用表空间所引起一些不必要的麻烦。

一. 环境说明:
1. 本机安装10.2
2. 本地建了一个数据库实例叫ywl
3. 在这个数据库实例下面有一个用户叫user1,它下面有很多表。
 
二. 问题描述:
1. 现在我要在ywl下面新加一个用户叫user2,然后我会在这个用户下,建自己的一些表,写一些自己的存储过程,存储过程中需要访问user1里面一些表的数据。
2. 我的做法如下:
    a) 创建一个新的表空间 newTableSpace,创建表空间的时候为表空间设定大小,其他默认。
    b) 创建一个新用户 user2,创建的时候通过Enterprise Manage Concole来创建,直接在Security->users下创建一个用户,
    在创建窗口的General tab页下面的tablespace中default中选择新建的表空间newTableSpace,temporary默认。在role的tab页中为用户选择DBA role。
    最后完成创建新用户,user2.
   c) 用user1连接LYPRD,连接成功后执行
select  'grant select on '||table_name||' to user2;' from user_tables;
grant select on XJ_VDSP_core.service to XJ_VDSP_up
  grant select on XJ_VDSP_core.sp to XJ_VDSP_up
执行结果为一组sql语句,将user1下的所有表的select权限都授权给了user2.
将执行结果中的需要授权的表的grant语句拷贝出来,然后在user1下将这些grant语句全部执行,即完成了将user1的特定表的查询权限授予给了user2.
用user2连接ywl,在user2下写存储过程,里面用到user1中表的时候,
直接用user1.tablename即可。

转载于:https://www.cnblogs.com/superMarioli/archive/2011/05/05/3683708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值