Oracle数据库权限设置与查询笔记

需积分: 9 2 下载量 160 浏览量 更新于2024-09-09 收藏 11KB TXT 举报
"Oracle个人学习笔记,包含了Oracle数据库的权限分配和数据查询技巧。笔记作者通过sys@ORCLASSYSDBA角色登录进行权限授予,并展示了如何查看用户所有表的相关信息,如表名、表注释、字段名、字段注释等。此外,还提供了查询锁定对象的SQL语句。" 在Oracle数据库管理中,了解如何管理和分配权限是至关重要的。在描述中,提到了使用`sys@ORCLASSYSDBA`这个超级用户角色进行权限的赋予。`sys`是一个内置的超级用户,拥有数据库的所有权限,`@ORCLASSYSDBA`表明这是连接到名为`ORCLASSYSDBA`的服务。执行`grant connect, resource, dba to scott;`这句SQL语句,将连接、资源和DBA(数据库管理员)权限赋予了用户`scott`。这意味着`scott`现在可以登录数据库、创建和管理数据库对象,以及执行更高级的数据库管理任务。 接下来的部分展示了如何查询用户所有表的详细信息。通过联接`user_tab_comments`(包含表级别的注释)和`user_col_comments`(包含列级别的注释)视图,可以获取每个表的名称、注释,以及每个字段的名称和注释。同时,结合`user_tab_cols`(包含表中所有列的信息)视图,可以得到字段的数据类型和是否允许为空的信息。查询条件`notlike '%_B'`, `notlike '%_Z'` 和 `notlike '%1%'` 用于排除特定模式的表,可能是因为这些表是系统内部或临时表。 最后,笔记中提供了一个查询锁定对象的SQL语句,这对于识别和解决并发控制问题非常有用。通过`v$locked_object`动态性能视图,可以找出当前被锁定的对象,再结合`dba_objects`(所有对象的详细信息)和`v$session`(会话信息)视图,可以找出锁定这些对象的机器、会话ID和序列号,这对于诊断和解决死锁等问题非常有帮助。 这些笔记内容对于学习和理解Oracle数据库的管理和查询技术非常有价值,涵盖了权限管理、数据查询以及并发控制等多个方面。无论是初学者还是经验丰富的DBA,都能从中获得宝贵的知识。