"Oracle 10g笔记,详细记录了OCa认证考试的关键知识点,包括用户管理和权限控制。"
在Oracle数据库管理系统中,用户管理和权限控制是核心组成部分,尤其是在Oracle 10g版本中。这份笔记详细阐述了如何创建和管理用户,以及如何分配和管理权限,这对通过OCa认证考试至关重要。
首先,我们来看用户管理。创建用户是数据库管理员(DBA)的基本任务。通过`CREATE USER`语句可以创建新用户,如创建用户`t1`和`t2`:
```sql
CREATE USER t1 IDENTIFIED BY t1;
CREATE USER t2 IDENTIFIED BY t2;
```
然后,使用`GRANT`语句赋予用户连接数据库的权限,例如:
```sql
GRANT CONNECT TO t1, t2;
```
接着,我们给`t1`用户分配了创建表和视图的权限,并且加上了`WITH ADMIN OPTION`,这意味着`t1`不仅可以创建表和视图,还可以将这些权限转授给其他用户:
```sql
GRANT CREATE TABLE, CREATE VIEW TO t1 WITH ADMIN OPTION;
```
`WITH ADMIN OPTION`的使用需要注意,它不会自动传递给`t1`转授的权限。例如,即使`t1`有创建表的权限,但当DBA撤销`t1`的`CREATE TABLE`和`CREATE VIEW`权限时,`t1`之前转授予`t2`的权限并不会受到影响,除非直接从`t1`那里撤销。
对于对象权限,我们可以看到例子中`test`用户将`SELECT`权限授予了`t1`,并允许`t1`进一步将该权限转授给`t2`:
```sql
GRANT SELECT ON tt TO t1 WITH GRANT OPTION;
```
`t1`再将`SELECT`权限授予`t2`:
```sql
GRANT SELECT ON test.tt TO t2;
```
在查询`dba_tab_privs`视图,可以看到权限的分配情况:
```sql
SELECT * FROM dba_tab_privs WHERE grantee IN ('T1', 'T2');
```
最后,要注意的是,撤销系统权限时,如`REVOKE CREATE TABLE, CREATE VIEW FROM t1;`,这些权限不会级联撤销已经授予其他用户的权限。这意味着`t1`仍然可以使用`t2`已有的权限,除非直接从`t2`处撤销。
总结起来,Oracle 10g的用户管理和权限控制涉及用户创建、连接权限、系统权限和对象权限的授予与撤销,以及`WITH ADMIN OPTION`和`GRANT OPTION`的使用。理解和熟练掌握这些概念对于通过OCa认证考试及日常数据库管理都至关重要。