新建用户,赋只读权限

hm66884422 2010-02-05 09:24:24
我新建了一人用户,赋给他只读权限
grant connect to username;
grant select on view to username;
但是我用username登录后,查询view提示表或视图不存在.怎么回事啊
...全文
606 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 vanjayhsu 的回复:]
引用 17 楼 hm66884422 的回复:
引用 14 楼 vanjayhsu 的回复:
--直接赋予查任何表的权限
SQL codegrantselectanytableto username;


我已经把这个权限给了新建用户名了.但是用新建用户名登录后.一个表都没有




在这个用户下肯定是没有任何表的(因为你这个用户是新建的,还没有创建过表)。。。你查看下其他用户下的表是否有?
[/Quote]



select * from 拥有所有权限的用户名.表名 就出来了...
不是权限赋错了.而是查询错了.我对不起大家!!
vanjayhsu 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hm66884422 的回复:]
引用 14 楼 vanjayhsu 的回复:
--直接赋予查任何表的权限
SQL codegrantselectanytableto username;


我已经把这个权限给了新建用户名了.但是用新建用户名登录后.一个表都没有


[/Quote]

在这个用户下肯定是没有任何表的(因为你这个用户是新建的,还没有创建过表)。。。你查看下其他用户下的表是否有?
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 suiziguo 的回复:]
SQL> show user
USER 为 "SCOTT"
SQL> select * from all_objects
  2  where owner='SYS' and rownum <2;

OWNER                          OBJECT_NAME
------------------------------ ------------------------------
SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED        LAST_DDL_TIME  TIMESTAMP          STATUS  T G S
-------------- -------------- ------------------- ------- - - -
SYS                            DUAL
                                      258            258 TABLE
30-8月 -05    30-8月 -05    2005-08-30:13:50:32 VALID  N N N


SQL>

需要'',自己研究下。
[/Quote]

我加了''的,提示错误,然后显示了一些字段,但是一条纪录也没有
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 vanjayhsu 的回复:]
--直接赋予查任何表的权限
SQL codegrantselectanytableto username;
[/Quote]

我已经把这个权限给了新建用户名了.但是用新建用户名登录后.一个表都没有

yxwk78 2010-02-05
  • 打赏
  • 举报
回复
认证学习中
suiziguo 2010-02-05
  • 打赏
  • 举报
回复
SQL> show user
USER 为 "SCOTT"
SQL> select * from all_objects
2 where owner='SYS' and rownum<2;

OWNER OBJECT_NAME
------------------------------ ------------------------------
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED LAST_DDL_TIME TIMESTAMP STATUS T G S
-------------- -------------- ------------------- ------- - - -
SYS DUAL
258 258 TABLE
30-8月 -05 30-8月 -05 2005-08-30:13:50:32 VALID N N N


SQL>

需要'',自己研究下。
vanjayhsu 2010-02-05
  • 打赏
  • 举报
回复
--直接赋予查任何表的权限
grant select any table to username;
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
select * from all_objects
where owner=拥有所有权限的用户名;

执行出现错误,,,,,,,
suiziguo 2010-02-05
  • 打赏
  • 举报
回复
再用新建用户名登录
select * from all_objects
where owner=拥有所有权限的用户名;
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
用拥有所有权限的用户名登录
grant select on 用户名.表名称 to 新建用户名;
grant select on 用户名.视图名称 to 新建用户名;

再用新建用户名登录.什么都没有
suiziguo 2010-02-05
  • 打赏
  • 举报
回复
你怎么操作的,步骤具体点。
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
回复8楼.
还是没有
suiziguo 2010-02-05
  • 打赏
  • 举报
回复
以SYS用户登录,执行

grant select on view_owner_username.view_name to new_username;
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
不行.用我新建的用户名登录后.根本就没有表和视图

怎么赋啊??/
ldl196 2010-02-05
  • 打赏
  • 举报
回复
个人经验,为楼主分析一二:
1、view只是一个定义,并不实际存在,如果想要取得view的select权限,那么必须要得到基表的select权限。
2、select时加上用户名,比如
select * from username.table;
yuzhenhuan01 2010-02-05
  • 打赏
  • 举报
回复
你是不是直接查表名的啊
没有建立同义词的话你得
select * from 用户名.表名
Phoenix_99 2010-02-05
  • 打赏
  • 举报
回复
将基础表的查询权限也赋给该用户
hm66884422 2010-02-05
  • 打赏
  • 举报
回复
噢? 是不是查询视图的时候.不能查表就会出这种错啊? 我先试试..
47522341 2010-02-05
  • 打赏
  • 举报
回复
可能是view中的表没查询权限。
你最好将view的基础表select权限也赋给该用户,或者索性将所有表的查询权限赋给他
grant select any view to username;
grant select any table to username;

  • 打赏
  • 举报
回复
果oracle是大小写敏感的,
如果定义表名称或列名称的时候没有用引号引起来的话
oracle会把他们全部转换为大写。
Select * from "视图";

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧