请教大家一个访问表空间的问题

[复制链接]
查看11 | 回复9 | 2011-11-1 16:25:51 | 显示全部楼层 |阅读模式
如果我想让普通用户可以查询DBA_TABLESPACES表空间 应该如何赋权限?
还是说 DBA_TABLESPACES表空间只能SYS用户自己查询?
在线急等

回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
我顶
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
1,grant select any table to ===>普通用户
2,把参数O7_DICTIONARY_ACCESSIBILITY设置成true,并重新启动数据库,使更改生效
3,用你指定的用户连接后,就可以查询dba视图了
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
pzh2010 发表于 2011-11-8 09:51
1,grant select any table to===>普通用户
2,把参数O7_DICTIONARY_ACCESSIBILITY设置成true,并重新启 ...

有无不重启数据库就能授权的办法?
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
只有DBA权限的用户可以查询 dba_tablespaces
普通用户 查询 user_tablespaces
SQL> select * from user_tablespaces;
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
据我所知,没有!
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
本帖最后由 chicheng_cn421 于 2011-11-8 10:15 编辑
补充:只要用户 拥有DBA权限 就可以访问DBA_TABLESPACES视图
例如:
1)将dba角色授权给scott用户
grant dba to SCOTT;
2)授权后 scott用户就可以访问dba_tablespaces 视图了
SQL> connect scott/tiger
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott
SQL> select TABLESPACE_NAME from dba_tablespaces;
TABLESPACE_NAME

------------------------------
SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

EXAMPLE

6 rows selected
SQL>
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
dba_*,user_* Oracle就是为了区分不用用户等级访问的source,所以,只有相应的pri才能访问相应的资源
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
grant dba to granted_username
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
chicheng_cn421 发表于 2011-11-8 09:59
只有DBA权限的用户可以查询 dba_tablespaces
普通用户 查询 user_tablespaces

顶一下 问题已经按照5楼说的解决 谢谢大家
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行