ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
【スキーマ作成】 -- Oracle 10g ( No.3 )
日時: 2008/04/19 11:51
名前: lightbox



スキーマを作成する前に、ユーザーとテーブルスペースの現状を調べます。

users.sql
SET LINESIZE 32767
SET PAGESIZE 0
select * from DBA_USERS;
EXIT
space.sql
SET LINESIZE 32767
select 
	TABLESPACE_NAME 名前,
	CONTENTS タイプ,
	EXTENT_MANAGEMENT エクステント管理,
	round(FSIZE/1000000) "サイズ(M)",
	(FSIZE-FREESIZE)/1000000 "使用量(M)"
from
	DBA_TABLESPACES,
(
	select 
		V$TABLESPACE.NAME TNAME1,
		sum(BYTES) FSIZE
	from V$TABLESPACE,V$DATAFILE
	where
		V$TABLESPACE.TS# = V$DATAFILE.TS#
	group by V$TABLESPACE.NAME
) TSIZE,
(
	select 
		TABLESPACE_NAME AS TNAME2,
		sum(BYTES) AS FREESIZE 
	from DBA_FREE_SPACE
	group by TABLESPACE_NAME
) TFREE
where
	TABLESPACE_NAME = TNAME1 and
	TABLESPACE_NAME = TNAME2;
EXIT
実行コマンドライン
sqlplus / as sysdba @users > users.txt
sqlplus / as sysdba @space > space.txt

テーブルスペース作成
create tablespace LIGHTBOXAREA
datafile 'C:\oraclexe\oradata\XE\LIGHTBOX.ORA'
	size 5M
	autoextend on
	next 1M
	maxsize unlimited
segment space management AUTO
select * from DBA_TABLESPACES select * from DBA_DATA_FILES 物理ファイルが既にある場合
create tablespace LIGHTBOXAREA2
datafile 'C:\oraclexe\oradata\XE\LIGHTBOX2.ORA'
	size 5M reuse
	autoextend on
	next 1M
	maxsize unlimited
segment space management AUTO
ユーザ作成
create user LIGHTBOX
	identified by LIGHTBOX
	default tablespace LIGHTBOXAREA
	temporary tablespace TEMP
	quota unlimited on LIGHTBOXAREA
	account unlock
select * from DBA_USERS ロール作成
create role LIGHTOBX_ROLE
select * from DBA_ROLES ※ ロール名が "LIGHTOBX" となっています。注意して下さい ロールに権限付与
grant 
	 ALTER PROFILE 
	,ALTER SESSION 
	,ALTER SYSTEM 
	,ALTER TABLESPACE 
	,ALTER USER 
	,CREATE PROCEDURE 
	,CREATE PROFILE 
	,CREATE PUBLIC SYNONYM 
	,CREATE ROLE 
	,CREATE ROLLBACK SEGMENT 
	,CREATE SEQUENCE 
	,CREATE SESSION 
	,CREATE SYNONYM 
	,CREATE TABLE 
	,CREATE TABLESPACE 
	,CREATE TRIGGER 
	,CREATE VIEW 
	,EXECUTE ANY PROCEDURE 
	,SELECT ANY DICTIONARY 
	,SELECT ANY SEQUENCE 
	,SELECT ANY TABLE
to LIGHTOBX_ROLE
ロールを作成したユーザで実行 select * from ROLE_SYS_PRIVS where ROLE = 'LIGHTOBX_ROLE' ロールを適用されたユーザで実行 select * from ROLE_SYS_PRIVS ロールをユーザーに適用
grant LIGHTOBX_ROLE to LIGHTBOX
select * from USER_ROLE_PRIVS ※ 補足 ユーザー削除 ( CASCADE 句が重要 ) テーブルスペース削除 物理ファイルも同時に削除( サンプル )
DROP TABLESPACE LIGHTBOXAREA2 INCLUDING CONTENTS AND DATAFILES