Chinaunix

标题: 如何知道我(oracle中的 account)当前有哪些权限,比如select/update? [打印本页]

作者: TOADLover    时间: 2009-07-31 10:25
标题: 如何知道我(oracle中的 account)当前有哪些权限,比如select/update?
如何知道我(oracle中的 account)当前有哪些权限,比如select/update?

我的DBA给我在Oracle 9i中建立了一个账户,我用该账号登录后,如何查看我有哪些权限?

我分别用
select object_name, object_type from user_objects

select table_name from user_tables
结果都为空,什么都没有显示,这是不是说明我没有select的权限?

[ 本帖最后由 TOADLover 于 2009-7-31 10:40 编辑 ]
作者: ziggler    时间: 2009-07-31 10:25
标题: 回复 #1 TOADLover 的帖子
[url]http://junmail.javaeye.com/blog/135331[/url]
1.查看所有用户:
  select * from dba_users;
  select * from all_users;
  select * from user_users;


2.查看用户或角色系统权限:
  select * from dba_sys_privs;
  select * from user_sys_privs;



3.查看角色所包含的权限
sql>select * from role_sys_privs;


4.查看用户对象权限:
  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;


5.查看所有角色:
  select * from dba_roles;


6.查看用户或角色所拥有的角色:
  select * from dba_role_privs;
  select * from user_role_privs;

[[i] 本帖最后由 ziggler 于 2009-7-31 13:08 编辑 [/i]]
作者: TOADLover    时间: 2009-07-31 10:26
知道的兄弟们快点来,我结贴很快的!
作者: TOADLover    时间: 2009-07-31 10:28
@山野村夫,
在吗?
嗯,我是TOAD连上Oracle的,并且使用了图形界面的Find Object按钮的功能,结果找不到任何对象
作者: TOADLover    时间: 2009-07-31 10:30
嗯,我如何知道我连上的数据库(oracle)的版本?
-----------------
select * from v$version
-----------------
select * from v$instance--我的账号对该视图没有权限,我看不到该视图,其他两个都可以
-----------------
select * from product_component_version
-----------------

[ 本帖最后由 TOADLover 于 2009-7-31 10:44 编辑 ]
作者: TOADLover    时间: 2009-07-31 10:40
如何知道我(oracle中的 account)当前有哪些权限,比如select/update?
作者: TOADLover    时间: 2009-07-31 10:49
这个问题也很难?

怎么没人答?

焦急。。。。
作者: TOADLover    时间: 2009-07-31 12:28
select object_name, object_type from user_objects
select table_name from user_tables
--------------
以上只能查看自己建立的对象

desc all_tables
select table_name from all_tables
all_tables才是描述当前用户的所有对象
-------------
作者: 山野村夫    时间: 2009-07-31 12:29
标题: 回复 #3 TOADLover 的帖子
看8楼,
另外TOAD图形界面用户管理可以直接看到
作者: TOADLover    时间: 2009-07-31 12:31
select privilege from dba_sys_privs where grantee='DATAUSER'  
union  
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );
-----------------
这种用户只能以sys用户查看,可是我当前只是一个普通用户,我想知道自己有哪些权限,好像做不到????????
作者: TOADLover    时间: 2009-07-31 12:37
标题: 回复 #9 山野村夫 的帖子
我看了ziggler给出的链接,
嗯,
select * from all_tab_privs
这个是可以用来查看现有系统中的所有对象的权限。

select * from user_tab_privs
这个只能用来查看自己用当前账号建立对象的权限。

select * from user_role_privs
这个可以用来查看自己的username和被赋的角色。

select * from user_sys_privs
这个可以用来查看自己的username和系统级权限。

select * from user_users
看当前用户default tablespacetempory tablespaceaccount_statusexpiry_date.
---------

我自己发现
select object_name, object_type from all_objects
这个也挺好用

[ 本帖最后由 TOADLover 于 2009-7-31 12:58 编辑 ]
作者: TOADLover    时间: 2009-07-31 12:56
标题: 回复 #9 山野村夫 的帖子
TOAD中直接可以看到?
在哪里?
作者: 山野村夫    时间: 2009-07-31 13:19
标题: 回复 #12 TOADLover 的帖子
用户管理
作者: TOADLover    时间: 2009-07-31 13:28
我怎么找不到这个菜单在哪里?

作者: TOADLover    时间: 2009-07-31 14:16
trunc
这个函数怎么用的?
作者: TOADLover    时间: 2009-07-31 14:18
TRUNC函数为指定元素而截去的日期值。
  
  其具体的语法格式如下:
  
  TRUNC(date[,fmt])
  
  其中:
  
  date 一个日期值
  
  fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
  
  下面是该函数的使用情况:
  
  TRUNC(TO_DATE('24-Nov-1999 08:00 pm','dd-mon-yyyy hh:mi am'))-----这里还是不明白
  
  ='24-Nov-1999 12:00:00 am'
  
  TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am','hh')) ='24-Nov-1999 08:00:00 am'
  
  2.TRUNC(for number)
  
  TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
  
  其具体的语法格式如下
  
  TRUNC(number[,decimals])
  
  其中:
  
  number 待做截取处理的数值
  
  decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
  
  下面是该函数的使用情况:
  
  TRUNC(89.985,2)=89.98
  
  TRUNC(89.985)=89
  
  TRUNC(89.985,-1)=80
  
  注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2