您的位置:首页 > 数据库 > Oracle

oracle创建表空间,用户,授权,角色

2015-04-14 11:55 549 查看
create temporary tablespace user_temp
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建表空间

--创建临时表空间。由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序(Group --by,Order by等)等算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间

--创建数据表空间
create tablespace user_data
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建用户

--第3步:创建用户并指定表空间
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;


导入、导出

--导入导出命令     

ip导出方式: 
exp demo/demo@127.0.0.1:1521/orcl file=f:/f.dmp full=y
exp demo/demo@orcl file=f:/f.dmp full=y
imp demo/demo@orcl file=f:/f.dmp full=y ignore=y

附:

一、用户分类

sys;//系统管理员,拥有最高权限

system;//本地管理员,次高权限

username;//普通用户,密码默认为tiger,默认未解锁

二、登陆

sqlplus / as sysdba;//登陆sys帐户

sqlplus sys as sysdba;//同上

sqlplus scott/tiger;//登陆普通用户username

三、管理用户

create user username; //在管理员帐户下,创建用户username

alert user username identified by tiger;//修改密码

四,授予、撤销权限 (新建的用户没有任何权限,必须授予权限)

oracle为了兼容以前的版本,提供了三种标准的角色(role):connect、resource和dba。

1. connect role(连接角色)

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

2. resource role(资源角色)

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

3. dba role(数据库管理员角色)

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

临时用户,特别是那些不需要建表的用户,通常只赋予他们connectrole。connect是使用oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有connect role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。
grant create session to username;//授予username用户创建session的权限,即登陆权限
grant unlimited tablespace to username;//授予username用户使用表空间的权限
grant create table to username;//授予创建表的权限
grante drop table to username;//授予删除表的权限
grant insert table to username;//插入表的权限
grant update table to username;//修改表的权限
grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)


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

grant select on tablename to username;//授予username用户查看指定表的权限
grant drop on tablename to username;//授予删除表的权限
grant insert on tablename to username;//授予插入的权限
grant update on tablename to username;//授予修改表的权限
grant insert(id) on tablename to username;
grant update(id) on tablename to username; //授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant alert all table to username;//授予username用户alert任意表的权限


五、撤销权限

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

六、查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限

七、权限传递

即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:
grant alert table on tablename to username with admin option;//关键字 with admin option
grant alert table on tablename to username with grant option;//关键字 with grant option效果和admin类似


八、角色

角色即权限的集合,可以把一个角色授予给用户
create role myrole;//创建角色
grant create session to myrole;//将创建session的权限授予myrole
grant myrole to username;//授予username用户myrole的角色
drop role myrole;删除角色
备注:

因为用drop table,delete * from 表名时,tablespace表空间该表的占用空间并未释放,反复几次drop,delete操作后,该tablespace上百兆的空间就被耗光了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库管理