果oracle是大小写敏感的, 如果定义表名称或列名称的时候没有用引号引起来的话 oracle会把他们全部转换为大写。 Select * from "视图";
可能是view中的表没查询权限。 你最好将view的基础表select权限也赋给该用户,或者索性将所有表的查询权限赋给他 grant select any view to username; grant select any table to username;
你是不是直接查表名的啊 没有建立同义词的话你得 select * from 用户名.表名
个人经验,为楼主分析一二: 1、view只是一个定义,并不实际存在,如果想要取得view的select权限,那么必须要得到基表的select权限。 2、select时加上用户名,比如select * from username.table;
以SYS用户登录,执行grant select on view_owner_username.view_name to new_username;
用拥有所有权限的用户名登录 grant select on 用户名.表名称 to 新建用户名; grant select on 用户名.视图名称 to 新建用户名;再用新建用户名登录.什么都没有
再用新建用户名登录 select * from all_objects where owner=拥有所有权限的用户名;
select * from all_objects where owner=拥有所有权限的用户名;执行出现错误,,,,,,,
--直接赋予查任何表的权限 grant select any table to username;
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>需要'',自己研究下。
select * from 拥有所有权限的用户名.表名 就出来了... 不是权限赋错了.而是查询错了.我对不起大家!!
如果定义表名称或列名称的时候没有用引号引起来的话
oracle会把他们全部转换为大写。
Select * from "视图";
你最好将view的基础表select权限也赋给该用户,或者索性将所有表的查询权限赋给他
grant select any view to username;
grant select any table to username;
没有建立同义词的话你得
select * from 用户名.表名
1、view只是一个定义,并不实际存在,如果想要取得view的select权限,那么必须要得到基表的select权限。
2、select时加上用户名,比如select * from username.table;
grant select on 用户名.表名称 to 新建用户名;
grant select on 用户名.视图名称 to 新建用户名;再用新建用户名登录.什么都没有
select * from all_objects
where owner=拥有所有权限的用户名;
where owner=拥有所有权限的用户名;执行出现错误,,,,,,,
grant select any table to username;
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>需要'',自己研究下。
select * from 拥有所有权限的用户名.表名 就出来了...
不是权限赋错了.而是查询错了.我对不起大家!!