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数据库添加用户的主要内容,如果未能解决你的问题,请参考以下文章