天天看點

oracle建立表空間,表及使用者

oracle要建立表要首先建立表空間,當然預設是有表空間的。而mysql建立表時,會自動建立表空間,myisam會自動建三個文 件.MYD,.MYI,.frm。innodb呢,如果沒有配置獨立表空間的話,預設表空間ibdata1,oracle使用者權限根着表空間走的,而 mysql不是,mysql伺服器端安裝好後,會自動帶上一個mysql資料庫,使用者的權限是記錄在mysql這個資料庫的表中。在這方面二種資料庫設計 的理念不同。

1,建立臨時表空間

檢視複制列印?

SQL> create temporary tablespace test_temp  

 2  tempfile '/opt/ora10/oradata/test/test_tmp.dbf'  

 3  size 32m  

 4  autoextend on  

 5  next 32m maxsize 148m  

 6  extent management local;  

Tablespace created.  

2,建立表空間

SQL> create tablespace test_data  

 2  logging  

 3  datafile '/opt/ora10/oradata/test/test_data.dbf'  

 4  size 32m  

 5  autoextend on  

 6  next 32m maxsize 148m  

 7  extent management local;  

3,建立表使用者,并表空間配置設定給使用者

SQL> create user tank identified by tank  

 2  default tablespace test_data  

 3  temporary tablespace test_temp;   

User created.  

4,檢視建立的表空間

SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size  

 2   from dba_tablespaces t, dba_data_files d where  

 3  t.tablespace_name = d.tablespace_name group by t.tablespace_name;  

TABLESPACE_NAME           TS_SIZE  

------------------------------ ----------  

SYSAUX                      240  

UNDOTBS1                   25  

TEST_DATA                   32  

USERS                        5  

SYSTEM                      480  

5,檢視臨時表空間

SQL> select sum(bytes)/1024/1024 "temp size(M)" from dba_temp_files where tablespace_name='TEST_TMP';  

temp size(M)  

------------  

6,将表空間的部分操作權限配置設定給使用者

SQL> grant connect,resource to tank;  

Grant succeeded.  

7,resource這是一個權限組,有這個組就不要一個一個加了。

SQL> select GRANTEE,PRIVILEGE from DBA_SYS_PRIVS where GRANTEE ='RESOURCE';   

GRANTEE                PRIVILEGE  

------------------------------ ----------------------------------------  

RESOURCE               CREATE TRIGGER  

RESOURCE               CREATE SEQUENCE  

RESOURCE               CREATE TYPE  

RESOURCE               CREATE PROCEDURE  

RESOURCE               CREATE CLUSTER  

RESOURCE               CREATE OPERATOR  

RESOURCE               CREATE INDEXTYPE  

RESOURCE               CREATE TABLE  

8 rows selected.  

以下操作我都是能以tank這個使用者進行操作的

9,建立表

create table test(  

id  number(10) not null primary key,  

name varchar(2) null ,  

city number(1) null  

);  

10,建立臨時表

CREATE  GLOBAL  TEMPORARY  TABLE  test1  (  

11,檢視表

SQL> select distinct table_name from user_tables;  

TABLE_NAME  

------------------------------  

TEST  

TEST1  

//或者  

SQL> select table_name from dba_tables where owner='TANK';  

TEST1