Oracle数据库添加用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库添加用户相关的知识,希望对你有一定的参考价值。

1.临时表空间和表空间的区别

表空间:此空间是用来进行数据存储的(表、function、存储过程等),所以是实际物理存储区域。

临时表空间:主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、

管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

因为用途不同所以才有了区分,实际上数据库都是有默认临时空间的,但实际应用中很难满足需求,所以才需要自己创建临时空间。

2. 创建临时表空间

 

CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE ‘D:\\Oracle_Database\\oradata\\orcl\\test_temp01.dbf
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

 

SIZE:初始大小

AUTOEXTEND ON NEXT :自动增长,当初始大小不足时,再分配多少空间。

MAXSIZE:最大空间,空间大小上限。

3.创建表空间

技术分享

CREATE TABLESPACE test_data
LOGGING
DATAFILE ‘D:\\Oracle_Database\\oradata\\orcl\\TEST_DATA01.DBF 
SIZE 32M 
AUTOEXTEND ON 
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

 

SIZE:初始大小

AUTOEXTEND ON NEXT :自动增长,当初始大小不足时,再分配多少空间。

MAXSIZE:最大空间,空间大小上限。

4.创建用户并分配表空间

 

CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;

 

另注:为已建好的用户更改表空间

ALTER USER USERNAME DEFAULT TABLESPACE TABLESPACENAME;

5.给用户授予权限

在Oracle数据库中,权限分为两类:系统权限、实体权限(对象权限)。

系统权限:系统规定用户使用数据库的权限(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限(是针对表或视图而言的)。

通产情况下,我们创建好了一个用户后,直接赋予系统权限,在普通用户常见完成后,一般使用下面语句进行权限的赋予

便可满足要求:

GRANT CONNECT,RESOURCE TO USER;

常用的系统管理权限:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有RESOURCE权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有CONNECT权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

 

对于普通用户:授予CONNECT, RESOURCE权限。
对于DBA管理用户:授予CONNECT,RESOURCE, DBA权限。

系统权限授权命令:
系统权限只能由DBA用户授出:SYS, SYSTEM(最开始只能是这两个用户)
授权命令:grant connect, resource, dba to 用户名1 [,用户名2]...;

GrANT CONNECT,RESOURCE,DBA TO 用户名1 [用户名2]...;

注:普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。 

相关权限查询语句:

查询用户拥有那些权限:

SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM DBA_SYS_PRIVS;

查自己拥有哪些系统权限

SELECT * FROM SESSION_PRIVS;

常用的实体权限:

 

  grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限

  grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限

  grant create table to zhangsan;//授予创建表的权限

  grante drop table to zhangsan;//授予删除表的权限

  grant insert table to zhangsan;//插入表的权限

  grant update table to zhangsan;//修改表的权限

  grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)

 

 

 

oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权:

 

 

  grant select on tablename to zhangsan;//授予zhangsan查看指定表的权限

  grant drop on tablename to zhangsan;//授予zhangsan删除指定表表的权限

  grant insert on tablename to zhangsan;//授予zhangsan插入指定表的权限

  grant update on tablename to zhangsan;//授予修改表的权限

  grant insert(id) on tablename to zhangsan;

  grant update(id) on tablename to zhangsan;//授予zhangsan对指定表特定字段的插入和修改权限,注意,只能是insert和update

  grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限

 

一般情况下,使用下面一句便可满足:

 

GRANT CONNECT,RESOURCE TO USER;

 

 

 

6.撤销权限

基本语法同grant,关键字为revoke

 

参考:

Oracle 用户、对象权限、系统权限

Oracle权限管理详解(原创)

 

ORACLE临时表空间总结

Oracle创建表空间、创建用户以及授权、查看权限

oracle用户创建及权限设置

 

 

以上是关于Oracle数据库添加用户的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE数据库创建用户名和表空间

oracle怎么创建表空间

Oracle 创建wims用户和表空间

Oracle快速创建表空间及用户授权

oracle数据库,表空间和表之间是啥关系

如何在oracle客户端创建表空间(具体配置)