困扰了我很久的oracle权限问题,谁能帮我解惑啊?

[复制链接]
查看11 | 回复5 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
我做了两组测试,测试目的都是要达到在test2用户的过程里有访问test1下的test1_tab表的权限,只是方法不一样 。 但是一组测试成功,一组测试失败。请教大家。
【环境】
首先我在我本机上的数据库创建了两个用户"test1" 和 "test2" , 并在 test1 下创建表 test1_tab .
【测试方式】
采取两种测试
1 。是把test1_tab的访问权限给test2.
2 。是创建一个role 把访问test1_tab权限给这个role ,然后把这个role给test2.
【第一种】
在test1下执行grant select on test1_tab to test2;
在test2下创建如下过程
create or replace procedure test(i out number)
as
begin
select count(*) into i from test1.test1_tab ;
end;
在这种情况下我运行过程没有错。
【第二种】
在test1下执行
1 create role cxtest1;
2 grant select on test1_tab to cxtest1;
3 grant cxtest1 to test2;
在test2下创建如下过程
create or replace procedure test(i out number)
as
begin
select count(*) into i from test1.test1_tab ;
end;
在这种情况下我运行过程就报表不存在的错了。 但是不在过程了查询test1_tab是可以查的到的。
请教大家,感激涕零。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
过程里角色权限不行,要再显式授对象权限。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
晕,为什么不看文档呢?调用者权限和定义者权限
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
过程和普通的SQL语句不一样的!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
测试是好的,但盲目的测试摸索是没必要的,看文档再测试效果会好点!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
谢谢朋友啊!是不是知道俺今天很累啊!把沙发让给俺坐啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行