Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222867
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 790
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 14:16
文章分类

全部博文(80)

文章存档

2007年(40)

2006年(40)

我的朋友

分类:

2007-04-17 16:05:35

ORACLE10g管理

1 用户帐号管理

1.1 用户认证


对于每个数据库用户都必须指明如何让Oracle系统认证新账户。当某人试图以一个用户名连接到数据库时,Oracle通过获准使用该账户的用户名来认证该用户。在用户请求连接数据库之前,Oracle提供了4种主要的认证合法用户的方式。数据库认证(database authentication),外部认证(external authentication),全局认证(global authentication)和代理认证(proxy authentication)。

1.2 创建用户账号

创建用户账号主要通过SQL命令CREATE USER,以下是CREATE USER的语法说明。

CREATE USER.png

现在可以给出一个创建数据库认证用户的例子:

CREATE TABLE EXAMPLE.png


1.3 用户配置文件

用户配置文件(profile)就是个参数的集合,其功能是限制用户可使用的系统和数据库资源并管理口令限制。如果数据库中没有创建用户配置文件,将使用默认的用户配置文件,默认用户配置文件制定对于所有用户资源没有限制。在创建用户账户时,除非指定,否则,所有的新用户账户都将被分配默认的用户配置文件。
例如,下面创建一个用户配置文件test_profile。

CREATE PROFILE.png



DROP USER sean;

CREATE USER sean
IDENTIFIED BY sean123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE TEMP
QUOTA 1024k ON users
;
GRANT connect,resource,dba TO sean;

COMMIT;
show errors;

1.4 默认的数据库用户

每个Oracle 10g数据库在创建后都会有4个默认的数据库用户;SYS、SYSTEM、SYSMAN和DBSNMP

1.5 修改用户账户

如果需要对已经创建的用户的某些属性进行修改,如修改用户密码、默认表空间、临时表空间、使用表空间的定额、配置文件等,可以使用SQL命令ALTER USER来实现。

1.6 锁定和解锁用户账户

Oracle可在任何时候锁定和解锁用户账号,这样就能通过该账户控制数据库访问而不必删除和重建这些用户账号。锁定用户账号之后,该用户就无法连接到Oracle数据库,要允许用户使用账户访问数据库,必须解锁该账户。

1.7 删除用户

可以使用SQL命令DROP USER来删除用户,例如删除用户cheerlibra的命令:DROP USER cheerlibra;如果在删除用户的同时还要删除该用户拥有的数据库对象,则可以使用带CASCADE选项的DROP USER命令。


2 权限管理

2.1 数据库权限的种类

Oracle提供了两种类型的权限:系统权限(system privilege)和对象权限(object privilege)。系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,对象权限则是一种赋予用户在指定的数据库对象(如表,视图,过程等)上执行特定类型的操作权限。

2.2 授予和撤销系统权限

对用户授予权限主要通过SQL命令GRANT来实现,下面是授予某个程序开发人员AppDeveloper1这些系统权限的SQL命令。
GRANT CERATE SESSION,CREATE TABLE,CREATE VIEW,CREATE ANY INDEX,CREATE SEQUENCE,CREATE TYPE
TO AppDeveloper1;

2.3 授予和撤销对象权限

对象权限的管理与系统权限基本相同,也就是用GRANT和REVOKE命令来实现,但是语法规则稍有不同。



3 角色管理

3.1 创建角色

使用角色之前首先要创建角色。要创建一个新的角色,使用SQL命令CREATE ROLE。
CREATE ROLE 角色名称
[NOT IDENTIFIED
|IDENTIFIED {BY 密码 | USING [模式.]包 | EXTREMELY | GLOBALLY}
];
角色的名称不能与数据库已有的任何用户名相同,以免发生冲突。
与用户名类似,使用角色也要得到认证。

3.2 预定义角色

Oracle 10g提供了一些预定义角色(predefined role),供用户用于数据库管理。在创建数据库的过程中这些角色作为创建脚本的一部分自动被创建。

3.3 给角色授予权限

给角色授予权限也是使用SQL命令语句GRANT,并且与授予系统权限是一样的。

3.4 将角色授予用户或其他角色

在创建完角色并为角色分配了适当的权限后,就可以将角色授予用户或者其他角色了。
例如,如果想对数据库的所有用户授予预定角色CONNECT,可执行命令

CONNECT.png



再如,为图书馆系统开发者BookSystemDeveloper授予BookSysApp角色,命令如下:

BOOKSYSAPP.png


3.5 设置默认角色

每个用户都有一个默认角色列表。默认角色是当用户登录数据库时由Oracle自动启动的一种角色。默认角色方便了用户,无论在使用哪个应用程序时,总能启动在操作Oracle是需要的角色。
例如,授予用户BookSystemDeveloper的BookSysApp角色改成默认角色,命令如下:

DEFAULT_ROLE.png


3.6 启动和禁用角色

一旦用户被授予某个角色之后,将拥有角色拥有的一切权限,但是用户并不是任何时候都需要这个角色,有时候处于系统安全性的考虑,也希望让拥有某个角色的用户在某些时候能够暂时不能使用该角色。这些可以通过有选择的启动和禁用角色操作来实现。

3.7 删除角色

如果不再需要某个角色或者角色设置极不合理,就需要删除角色。删除角色的SQL命令是DROP ROLE,其语法是:DROP ROLE 角色名;



将HR用户下的表,全部导入SEAN用户下面:

GRANT SELECT ANY TABLE TO sean;
SELECT 'create table ' || table_name || ' as select * from hr.' || table_name || ' ; '
  FROM all_tables
 WHERE owner = 'HR';





阅读(3080) | 评论(0) | 转发(0) |
0

上一篇:Oracle面试问题

下一篇:ORACLE10g管理

给主人留下些什么吧!~~