Oracle常用SQL查询:权限、用户与表空间

需积分: 9 0 下载量 147 浏览量 更新于2024-09-08 收藏 2KB TXT 举报
本文主要介绍了在Oracle数据库中常用的SQL查询语句,涵盖了用户信息、权限、表空间、索引以及系统资源使用情况等多个方面。 在Oracle数据库管理中,掌握一些基本且频繁使用的SQL命令是非常重要的。以下是根据提供的部分内容整理的一些关键知识点: 1. 查询当前用户的所有权限:`SELECT * FROM role_sys_privs;` 这个查询用于查看当前角色所具有的系统权限。 2. 查看当前用户的用户信息:`SELECT * FROM user_users;` 这将显示当前用户的详细信息,如用户名、默认表空间等。 3. 获取当前用户的角色权限:`SELECT * FROM user_role_privs;` 通过这个查询,可以了解当前用户所关联的角色及其相应的权限。 关于Oracle中的不同视图: - `USER_*` 视图通常用于查询与当前用户相关的对象信息。 - `ALL_*` 视图用于获取当前用户有权限访问的所有对象信息,包括其他用户的对象。 - `DBA_*` 视图提供全面的数据库管理信息,需要具有DBA权限才能访问。 4. 查询用户的所有表:`SELECT table_name FROM user_tables;` 这个SQL语句列出当前用户拥有的所有表的名称。 5. 查询所有表(包括其他用户的表):`SELECT table_name FROM all_tables;` 和上一个命令不同,`all_tables` 视图包含了数据库中所有用户创建的表。 6. 查询数据库的所有表:`SELECT table_name FROM dba_tables;` 这个查询返回数据库中所有表的详细信息,需要DBA权限。 7. 查看索引信息:可以使用 `SELECT * FROM tab/dba_tables/dba_objects/cat` 等不同视图来获取索引的相关信息。 8. 查看当前会话信息:`SELECT * FROM v$Session;` 这个查询提供了关于当前活跃会话的详细数据。 9. 查询当前用户的系统权限:`SELECT * FROM session_privs;` 用于查看当前会话的系统权限。 10. 监控数据文件使用情况:`SELECT a.file_id "FileNo", a.tablespace_name "Tablespace_name", a.bytes "Bytes", a.bytes - SUM(nvl(b.bytes, 0)) "Used", SUM(nvl(b.bytes, 0)) "Free", SUM(nvl(b.bytes, 0)) / a.bytes * 100 "%free" FROM dba_data_files a, dba_free_space b WHERE a.file_id = b.file_id (+) GROUP BY a.tablespace_name, a.file_id, a.bytes ORDER BY a.tablespace_name;` 此查询可帮助分析数据文件的使用情况,包括已使用空间、剩余空间和使用率。 此外,还可以查询用户、权限和其他系统信息: - `SELECT * FROM dba_users;` 获取所有用户的信息。 - `SELECT * FROM all_users;` 查看所有用户信息,包括当前用户和其他用户。 - `SELECT * FROM user_users;` 获取当前用户的信息。 这些SQL查询是Oracle数据库管理员日常工作中不可或缺的部分,熟练掌握它们能有效提升工作效率。