oracle数据库管理--对象、角色相关查询

本文介绍了Oracle数据库中数据字典的分类及其查询方式,包括USER_*, ALL_*, 和 DBA_* 视图。此外,还详细讲解了如何查询用户拥有的表、权限、角色以及数据库的其他相关信息,如系统权限、对象权限、角色包含的权限、表空间、全局名称等。" 109289136,7785024,百度小程序登录与用户信息获取流程详解,"['小程序开发', 'node.js', '后端开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据字典:
    记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有用户者为sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护与修改是由系统自动完成的。数据字典包括数据字典基表和数据字典视图。
    ORACLE中数据字典视图分为3大类, 用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息

2、查询用户对应表
1)用于显示当前用户所拥有的所有表,它只返回所对应方案的所有表
SQL>select table_name from user_tables;
2)用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表。
SQL>select table_name from all_tables;
3)用于显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是DBA角色或是有select any table系统权限。
eg:当system用户查询数据字典视图dba_tables时,会返回system、sys、scott···方案所对应的数据库表。
SQL>conn system/manager;
SQL>select table_name from dba_tables;

3、用户名、权限、角色
1)显示所有数据库用户的详细信息
SQL>desc dba_users;
SQL>select username,password from dba_users;
2)显示用户具有的系统权限
SQL> desc dba_sys_privs
SQL> select * from dba_sys_privs where grantee='DBA';
3)显示用户具有的对象权限
SQL> desc dba_tab_privs
SQL> select * from dba_tab_privs where grantee='DBA'
4)显示用户所具有的角色
SQL> desc dba_sys_privs
SQL> select * from dba_role_privs where grantee='SCOTT';
具有CONNECT、RESOURCE角色,ADMIN_OPTION 不可派生

eg:
1)查询某个用户具有怎样的角色
SQL> select * from dba_role_privs where grantee='用户名';
2)查看某个角色包括哪些系统权限
SQL> select * from dba_sys_privs where grantee='CONNECT';
或者
SQL> select * from role_sys_privs where role='CONNECT'
八种系统权限(system privileges),没有对象权限(object privileges)
3)查看某个角色包括对象权限
SQL> select * from dba_tab_privs where grantee='CONNECT';
4)查询oracle中所有的角色,一般为DBA
SQL> select * from dba_roles;
如具有:CONNECT、RESOURCE、DBA等角色
5)查询oracle中所有的系统权限
SQL> select * from system_privilege_map order by name;
6)查询oracle中所有对象权限,一般是dba
SQL> select distinct privilege from dba_tab_privs;
7)查询数据库的表空间
SQL>select tablespace_name from dba_tablespaces;
8)显示当前用户可以访问的所有数据字典视图
SQL> select * from dict where comments like '%grant%';
9)显示当前数据库的全称
SQL> select * from global_name;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值