oracle创建用户和表空间

oracle中建立用户和表空间,按照如下方法:

(1)oracle中建立用户

-- 创建用户
create user 用户名 identified by 密码;
-- 授权用户
grant create session to 用户名;
grant create table to 用户名;
grant create tablespace to 用户名;
grant create view to 用户名;

(2)oracle中建立表空间:一般建多个存数据的表空间和一个存索引的索引空间

-- 创建表空间
create tablespace 表空间名
datafile '路径\***.dbf' size*M
tempfile '路径\***.dbf' size*M
autoextend on   -- 自动增长
default storage(
    initial 100K, 
    next 100K, ...);
-- 删除表空间
drop tablespace 表空间名 including contents and datafiles;

创建表空间的例子:

create tablespace DEMOSPACE   
datafile 'E:/oracle_tablespaces/DEMOSPACE_TBSPACE.dbf'   
size 1500M   
autoextend on next 5M maxsize 3000M;

(3)授予用户使用表空间的权限

alter user 用户名 quota unlimited on 表空间;
或者
alter user 用户名 quota *M on 表空间;

(4)例子

-- 创建表空间
create tablespace sdt 
datafile 'F:\tabelspace\demo.dbf' size 800M  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;   
CREATE TABLESPACE sdt_Index  DATAFILE 'F:\tablespace\demo.dbf' size 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 
-- 创建用户
create user demo identified by demo default tablespace demo.dbf;  
-- 赋予权限
grant connect,resource to demo;
grant create any sequence to demo;  
grant create any table to demo;
grant delete any table to demo; 
grant insert any table to demo;
grant select any table to demo;
grant unlimited tablespace to demo.dbf;
grant execute any procedure to demo;
grant update any table to demo;
grant create any view to demo;

(5)再补充一个例子

2014年10月20日补充,下面这个例子是我在我的电脑上装了oracle 11g以后,学习测试的时候创建的一个用户yedward,同时也创建了一个表空间给它,由于本地测试用,就没有分别给表、索引等创建不同的空间,在一起用也够了,代码如下:

-- 建立yedward用户
CREATE USER yedward IDENTIFIED BY 123456;
-- 赋予yedward用户dba角色权限
GRANT DBA  TO yedward;
-- 创建表空间
CREATE TABLESPACE ts_yedward
DATAFILE 'D:\APP\ORADATA\ORCL\TS_YEDWARD.DBF' SIZE 1000M
AUTOEXTEND ON NEXT 5M MAXSIZE 3000M;
-- 将表空间授予yedward用户
ALTER USER yedward QUOTA UNLIMITED ON ts_yedward;
-- 授予yedward用户默认表空间
ALTER USER yedward DEFAULT TABLESPACE ts_yedward;

这里补充一下,我在建表空间的时候经常会不知道物理地址放在哪里,相信也有很多朋友跟我有一样的问题,其实可以通过SELECT * FROM dba_data_files来查找dba_data_files视图找到有关表空间的相关信息;如果想要查找某个用户某人的表空间,比如scott用户,那么可以通过SELECT * FROM dba_users来查找dba_users这张表;如果想要查找指定表所在的空间是什么,可以通过SELECT * FROM all_tables WHERE table_name = UPPER('表名')来查找all_tables表。

本文标题:oracle创建用户和表空间

本文链接:http://yedward.net/?id=63

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章