程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle create a new user

oracle create a new user

編輯:Oracle數據庫基礎

1如何創建用戶

當你創建用戶時,應該定義它的表空間(default tablespace)。否則,它會使用系統表空間(system tablespace)。這是應該避免的。 這是常用的創建用戶的一個例子: CREATE USER XXXXX IDENTIFIED BY xxxxx
PROFILE DEFAULT
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMPTS01
ACCOUNT UNLOCK; 請注意,你首先要確認你的數據庫裡是否有這二個表空間:USERS和TEMPTS01。如果沒有,你先要創建表空間USERS及TEMPTS01,然後再創建用戶。(建立表空間命令請參見下面)

2基本命令

1.建立 修改 刪除用戶帳戶

create user 用戶名

identifIEd by 口令

[default tablespace 表空間名]

[temporary tablespace 表空間名]

[passWord expire]

[account{lock|unlock}]

修改:alter user 用戶名

          indentifIEd by 口令

刪除:drop user 用戶名

2.授予用戶權限

上面新創建的用戶沒有人戶權限所以什麼都做不了 所以要授予他某些權限

權限類型有兩種 系統權限 對象權限

a.系統權限 create session 如果沒有此權限用戶就無法與Oracle數據庫連接 所以用戶都有此權限

create table   用戶在自己的模式中創建表

create any table 在數據庫的任何模式中創建表

create vIEw   

create any vIEw

create type 用戶在自己的模式中創建類型

create any type

create procedure

create trigger

create synonym 用戶在自己的模式中創建同義詞

create sequence 用戶在自己的模式中創建序列

alter database        改變數據庫配置

alter system            ...................參數

alter any table        更改數據庫中任何表的結構

audit system          審計SQL語句

drop any table        在數據庫中刪除任何表或表的分區

delete any table    在數據庫的任何表或視圖中刪除行

execute any procedure

execute any type

grant any privilege 授予用戶任何系統權限

grant any role         授予用戶任何角色

insert any table

select any table

sysoper                  啟動和關閉數據庫 加載,打開或備份數據庫,執行ARCHIVELOG和RECOVER命令

sysdba                   DATABASE語句修改數據庫

update any table

unlimited tablespace

將系統權限授予用戶的SQL命令

grant 系統權限 to 用戶名 [with admin option]

收回命令

revoke 系統權限 from 用戶名

b.授予對象權限

grant 對象權限 on 對象名 to 用戶名 [with grant option] [with hIErarchy option]

(對象名 比如在那個表上就是表明 ;對象權限 insert update delete select等)

3表空間相關命令

.更改用戶表空間設置

alter user 用戶名

        default tablespace 表空間名

        temporary tablespace 表空間名

創建表空間

create tablespace 表空間名

datafile

'數據文件名'[size 整數[K|M]] [reuse]

[autoextend

{off | on

   [next 整數 [K | M] ]

   [maxsize {unlimited | 整數 [K | M] } ] } ]

[,.............其他數據文件.....]

[online | offonline]

[permanent | temporary];

eg: create tablespace newtbsp

     datafile

     'f:\userdata\sp1.dbf' size 100K reuse          ...........f:\userdata在f盤建立的文件夾 ,sp1.dbf 數據文件大小100K

    autoextend on next 100k maxsize 1M,          ..............每次擴展100K 最大到1M

    'f:\userdata\sp2.dbf' size 100K reuse

    online

   permanent;                                                   ...................online permanent 是默認的可以不寫

若要給表空間增加一個名為sp3.dbf的文件 可以用以下語句

alter tablespace newtbsp

datafile 'f:\userdata\sp3.dbf' size 5M;

建立表空間例三: CREATE TABLESPACE data01
DATAFILE '/Oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k;              #指定區尺寸為128k,如不指定,區尺寸默認為64k 刪除表空間 DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; 建立UNDO表空間 CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/Oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M #注意:在OPEN狀態下某些時刻只能用一個UNDO表空間,如果要用新建的表空間,必須切換到該表空間: ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 建立臨時表空間 CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/Oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M 改變表空間狀態 1.使表空間脫機 ALTER TABLESPACE game OFFLINE; 如果是意外刪除了數據文件,則必須帶有RECOVER選項 ALTER TABLESPACE game OFFLINE FOR RECOVER; 2.使表空間聯機 ALTER TABLESPACE game ONLINE;
3.使數據文件脫機 ALTER DATABASE DATAFILE 3 OFFLINE; 4.使數據文件聯機 ALTER DATABASE DATAFILE 3 ONLINE; 5.使表空間只讀 ALTER TABLESPACE game READ ONLY; 6.使表空間可讀寫 ALTER TABLESPACE game READ WRITE; 五、刪除表空間 DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES; 六、擴展表空間首先查看表空間的名字和所屬文件 select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name; 1.增加數據文件
   ALTER TABLESPACE game
   ADD DATAFILE '/Oracle/oradata/db/GAME02.dbf' SIZE 1000M; 2.手動增加數據文件尺寸
   ALTER DATABASE DATAFILE '/Oracle/oradata/db/GAME.dbf'
   RESIZE 4000M; 3.設定數據文件自動擴展
   ALTER DATABASE DATAFILE '/Oracle/oradata/db/GAME.dbf
   AUTOEXTEND ON NEXT 100M
   MAXSIZE 10000M; 設定後查看表空間信息    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
   (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
   FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
   WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved