### Oracle 10g 学习笔记知识点梳理
#### 一、Oracle 10g 用户管理及权限分配
**1.1 用户管理**
- **基本概念:**
- **Sys 用户:** Oracle 安装完成后自动创建的第一个用户,拥有最高级别的权限(`sysdba`),可创建数据库。
- **System 用户:** 具有较高权限的操作员账户,拥有`sysoper`角色,但不具备创建数据库的能力。
- **登录示例:**
- **系统用户登录命令:** `conn system/abc123`
- **超级用户登录命令:** `conn sys/abc123 as sysdba`
- **用户创建与管理**
- **创建新用户:** 使用`CREATE USER`命令。例如:`CREATE USER database_name IDENTIFIED BY password;`
- **修改密码:** 可通过`ALTER USER`命令实现。如:`ALTER USER username IDENTIFIED BY new_password;`
- **删除用户:** 需要`DROP USER`权限。例如:`DROP USER username CASCADE;`(其中`CASCADE`选项用于同时删除用户拥有的所有对象)
**1.2 权限分配**
- **系统权限:** 涉及整个数据库的操作权限,约有140多种。
- 示例:`GRANT CREATE TABLE TO username;`
- 可以通过`WITH ADMIN OPTION`授予下级用户再次分配权限的能力。
- **对象权限:** 指特定对象(如表、视图等)上的操作权限,约有25种。
- 示例:`GRANT SELECT, INSERT ON table_name TO username;`
- 可以通过`WITH GRANT OPTION`授予下级用户再次分配权限的能力。
#### 二、Oracle 10g SQL*Plus 工具使用
**2.1 连接与断开**
- **连接命令:** `conn [username/password @ service_name [as sysdba/sysoper]];`
- **断开连接:** `disconnect;`
- **修改密码:** `password;`
- **显示当前用户:** `show user;`
- **退出工具:** `exit;`
**2.2 文件操作**
- **运行脚本:** 使用`@`或`start`命令。如:`@F:\a.sql` 或 `start F:\a.sql;`
- **编辑脚本:** `edit F:\a.sql;`
- **屏幕输出重定向:** 使用`spool`命令。如:`spool F:\output.txt`,结束时输入`spool off;`
- **变量替换:** 使用`&`前缀。如:`SELECT * FROM emp WHERE job = '&job';`
**2.3 环境变量配置**
- **设置行宽:** `set linesize 90;`
- **设置页面大小:** `set pagesize 100;`
- **查看当前设置:** `show linesize;` 或 `show pagesize;`
- **永久保存设置:** 修改`glogin.sql`文件。
#### 三、Oracle 10g 数据库对象及角色管理
**3.1 数据对象**
- **表(Table):** 存储数据的基本结构。
- **视图(View):** 虚拟表,基于SQL查询结果构建。
- **触发器(Trigger):** 在特定事件发生时自动执行的PL/SQL代码块。
- **存储过程(Stored Procedure):** 保存在数据库中的预先编写的PL/SQL代码。
**3.2 角色管理**
- **预定义角色:** 如`connect`, `dba`, `resource`等。
- **自定义角色:** 用户可以根据需求自定义一组权限集。
#### 四、Oracle 10g 日志与事务管理
**4.1 事务控制**
- **保存点:** 用于事务回滚的标记点。例如:`SAVEPOINT my_savepoint;`
**4.2 日志管理**
- **重做日志:** 记录对数据库所做的更改,用于恢复操作。
- **归档日志:** 当数据库处于归档模式时启用,用于备份和恢复。
- **写日志:** 将更改记录到重做日志文件的过程。
通过以上梳理,我们可以更全面地理解Oracle 10g 中的核心概念、用户管理、权限分配以及数据库日常管理的相关知识点。这对于学习和掌握Oracle数据库的基础知识是非常有帮助的。