ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: 【スキーマ作成】 -- Oracle 10g
名前: lightbox
処理選択
パスワード

件名 【スキーマ作成】 -- Oracle 10g
名前 lightbox
コメント
@C:red(スキーマを作成する前に、ユーザーとテーブルスペースの現状を調べます。)

users.sql
@DIV
SET LINESIZE 32767
SET PAGESIZE 0
select * from DBA_USERS;
EXIT
@END

space.sql
@DIV
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
@END

実行コマンドライン
@DIV
sqlplus / as sysdba @users > users.txt
sqlplus / as sysdba @space > space.txt
@END


@LINE


[[テーブルスペース作成]]
@DIV
create tablespace LIGHTBOXAREA
datafile 'C:\oraclexe\oradata\XE\LIGHTBOX.ORA'
	size 5M
	autoextend on
	next 1M
	maxsize unlimited
segment space management AUTO
@END
@C:green(select * from DBA_TABLESPACES)
@C:green(select * from DBA_DATA_FILES)

物理ファイルが既にある場合
@DIV
create tablespace LIGHTBOXAREA2
datafile 'C:\oraclexe\oradata\XE\LIGHTBOX2.ORA'
	size 5M @C:red(reuse)
	autoextend on
	next 1M
	maxsize unlimited
segment space management AUTO
@END




[[ユーザ作成]]
@DIV
create user LIGHTBOX
	identified by LIGHTBOX
	default tablespace LIGHTBOXAREA
	temporary tablespace TEMP
	quota unlimited on LIGHTBOXAREA
	account unlock
@END
@C:green(select * from DBA_USERS)



[[ロール作成]]
@DIV
create role LIGHTOBX_ROLE
@END
@C:green(select * from DBA_ROLES)

※ ロール名が "LIGHTOBX" となっています。注意して下さい


[[ロールに権限付与]]
@DIV
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
@END
ロールを作成したユーザで実行
	@C:green(select * from ROLE_SYS_PRIVS where ROLE = 'LIGHTOBX_ROLE')
ロールを適用されたユーザで実行
	@C:green(select * from ROLE_SYS_PRIVS)



[[ロールをユーザーに適用]]
@DIV
grant LIGHTOBX_ROLE to LIGHTBOX
@END
@C:green(select * from USER_ROLE_PRIVS)



※ 補足
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19201-02/statements_9.html#21249(ユーザー削除) ( CASCADE 句が重要 )
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19201-02/statements_9.html#19413(テーブルスペース削除)

物理ファイルも同時に削除( サンプル )
@DIV
DROP TABLESPACE LIGHTBOXAREA2 INCLUDING CONTENTS AND DATAFILES
@END