oracle 数据库查询用户权限。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 数据库查询用户权限。相关的知识,希望对你有一定的参考价值。

我刚刚解锁了scott用户。
alter user scott account unlock;
然后 我想查询一下这个用户的权限
select privilege from dba_SYS_privs where grantee='SCOTT';

但是为什么告诉我未选定行????

dba_sys_privs是查看系统权限。未选定行说明没有系统权限。
这样,你grant dba to scott;
然后再查,就可以看到了。追问

那我想用这个用户建立表是不是就没有权限?
用户权限和系统权限有什么区别啊?

我想用这个建立表,该怎么给他权限?语句是什么

追答

系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等
对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

如果你是新建用户,给他赋予resource,connect权限便可建表,索引等。具体需要什么权限,你可以查询oracle联机文档。

SQL> grant resource,connect to scott;

参考技术A 没给他赋予系统权限,当然没有

如何查询Oracle中所有用户信息

使用具有dba权限的帐号登录数据库
执行命令"select username from dba_users"
官方文档对dba_users的定义:DBA_USERS describes all users of the database.因此可以如此查询。
用数据字典
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
参考技术A 1. 查询oracle中所有用户信息
select * from dba_users;
2. 只查询用户和密码
select username,password from dba_users;
3. 查询当前用户信息
select * from dba_ustats;
4. 查询用户可以访问的视图文本
select * from dba_varrays;
5. 查询数据库中所有视图的文本
select * from dba_views;
select distinct tablespace_name from SYS.DBA_FREE_SPACE where tablespace_name like '%RB%';

select * from dba_objects where object_name='JDE900_F0005';

select * from rbods.jde900_f0005;
select * from rbodm.dim_company;

  查看当前用户的缺省表空间
  select username,default_tablespace from user_users
  查看当前用户的角色
  select * from user_role_privs
  查看当前用户的系统权限和表级权限
  select * from user_sys_privs
  select * from user_tab_privs
  查看用户下所有的表
  select * from user_tables
  显示用户信息(所属表空间)
  select default_tablespace,temporary_tablespace from dba_users
  显示当前会话所具有的权限
  select * from session_privs
  显示指定用户所具有的系统权限
  select * from dba_sys_privs
  显示特权用户
  select * from v$pwfile_users
  查看名称包含log字符的表
  select object_name,object_id from user_objects where instr(object_name,'log')>0
  查看某表的创建时间
  select object_name,created from user_objects where object_name='ZW_YINGYEZ'
  查看某表的大小
  select sum(bytes)/(1024*1024) tablesize from user_segments
  where segment_name='ZW_YINGYEZ'
  查看放在ORACLE的内存区里的表
  select table_name,cache from user_tables where instr(cache,'Y')>0
  查看索引个数和类别
  select index_name,index_type,table_name from user_indexes order by table_name
  查看索引被索引的字段
  select * from user_ind_columns where table_name='CB_CHAOBIAOSJ201004'
  查看索引的大小
  select sum(bytes)/(1024*1024) as indexsize from user_segments
  where segment_name=upper('AS_MENUINFO')
  查看视图信息
  select * from user_views
  查看同义词的名称
  select * from user_synonyms
  查看函数和过程的状态
  select object_name,status from user_objects where object_type='FUNCTION'
  select object_name,status from user_objects where object_type='PROCEDURE'
  查看函数和过程的源代码
  select text from all_source where owner=user and name='SF_SPLIT_STRING'
  查看表字段
  select cname from col where tname='ZW_YINGYEZ'
  select column_name from user_tab_columns where table_name='ZW_YINGYEZ'

查看oracle版本命令:
select * from v$version

以上是关于oracle 数据库查询用户权限。的主要内容,如果未能解决你的问题,请参考以下文章

如何查询Oracle中所有用户信息

赋予oracle数据库中某一用户表权限的问题

赋予oracle数据库中某一用户表权限的问题

如何给oracle数据库创建一个用户,该用户只有查询权限,没有写缺

如何查询Oracle中所有用户信息

如何给oracle数据库创建一个用户,该用户只有查询权限,没有写缺