1.Oracle 默认用户

只有用合法的用户帐号才能访问Oracle数据库

Oracle 有几个默认的数据库用户

2.创建新用户

2.1 简介

要连接到Oracle数据库,就需要创建一个用户帐户

每个用户都有一个默认表空间和一个临时表空间

表空间的分类

永久表空间:存放永久性数据,如表,索引等。

临时表空间 :不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据

2.2 创建表空间

表空间:表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。

2.2.1 创建数据表空间

create tablespace analysis_test

logging

datafile '/u01/app/oracle/oradata/orcl/analysis_test.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

2.2.2 创建临时表空间

create temporary tablespace analysis_test_temp

tempfile '/u01/app/oracle/oradata/orcl/analysis_test_temp.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

2.3 创建用户

create user analysis_test -- 用户名

identified by "analysis_test" --密码

default tablespace analysis_test --数据表空间

temporary tablespace analysis_test_temp -- 临时表空间

2.4 用户解锁

alter user 用户名 account unlock;

3 授予权限

3.1 授予权限

权限指的是执行特定命令或访问数据库对象的权利

权限有两种类型,系统权限和对象权限

系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限。

对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作。

角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。

3.2 三种标准角色

Qracle为了兼容以前的版本,提供了三种标准的角色(role):CONNECT、RESOURCE和DBA

CONNECT(连接角色):

临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户 的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。

RESOURCE(资源角色)

更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)

DBA(数据库管理员角色)

DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。

3.3 授予权限

GRANT 命令可用于为用户分配权限或角色

赋予系统权限:grant角色to用户;

赋予对象权限:Grant insert update delete select on表to用户;

回收系统权限:revoke角色from用户;

回收对象权限:revoke all on表from用户;

更改:ALTER USER MARTIN IDENTIFIED BY martinpass;(修改密码)

删除:drop user 用户

example

GRANT CONNECT TO MARTIN; //CONNECT权限允许用户连接至数据库并创建数据库对象

GRANT RESOURCE TO MARTIN; //RESOURCE权限允许用户使用数据库的存储空间

GRANT CREATE SEQUENCE TO MARTIN; //此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中

GRANT SELECT ON TEST TO MARTIN; //允许用户查询TEST表

GRANT UPDATE ON TEST TO MARTIN; //允许用户插入,删除,更新和查询TEST表