博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨表空间访问数据
阅读量:5111 次
发布时间:2019-06-13

本文共 933 字,大约阅读时间需要 3 分钟。

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

一. 环境说明:
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

你可能感兴趣的文章
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
转】MyEclipse使用总结——MyEclipse文件查找技巧
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
phpcms
查看>>
中文词频统计
查看>>
[.net 面向对象编程基础] (19) LINQ基础
查看>>