CREATE TABLESPACE tab_ckbdata datafile ‘/oradata/tab_ckbdata001.bdf’ size 8192M,’/oradata/tab_ckbdata002.bdf’ size 8192M,’/oradata/tab_ckbdata003.bdf’ size 8192M,’/oradata/tab_ckbdata004.bdf’ size 8192M,’/oradata/tab_ckbdata005.bdf’ size 8192M,’/oradata/tab_ckbdata006.bdf’ size 8192M,’/oradata/tab_ckbdata007.bdf’ size 8192M;
CREATE TABLESPACE index_ckbdata datafile ‘/oradata/index_ckbdata001.bdf’ size 8192M,’/oradata/index_ckbdata002.bdf’ size 8192M;
CREATE USER hnckb IDENTIFIED BY oracle
DEFAULT TABLESPACE tab_ckbdata;
ALTER USER hnckb QUOTA UNLIMITED ON tab_ckbdata;
ALTER USER hnckb QUOTA UNLIMITED ON index_ckbdata;
GRANT debug any procedure, debug connect session TO hnckb;
grant select on sys.dba_pending_transactions to hnckb;
grant CREATE VIEW,CREATE JOB,CREATE SYNONYM to hnckb;
grant CONNECT,RESOURCE to hnckb;
1.標準角色
CONNECT
RESOURCE
2.系統許可權
CREATE VIEW
CREATE DATABASE LINK
CREATE JOB
CREATE SYNONYM
UNLIMITED TABLESPACE
更改定額
命令:ALTER USER 名稱 QUOTA 0 ON 表空間名
ALTER USER 名字 QUOTA (數值)K|M|UNLIMITED ON 表空間名;
使用方法:
A、控制使用者資料增長
B、當使用者擁有一定的資料,而管理員不想讓他在增加新的資料的時候。
C、當將使用者定額設為零的時候,使用者不能建立新的資料,但原有資料仍可訪問。
3.物件許可權
DBA_PENDING_TRANSACTIONS (SELECT) — XA事務支援
grant select on sys.dba_pending_transactions to user;
4.建議開放
DEBUG CONNECT SESSION — 除錯儲存過程
例如:
GRANT debug any procedure, debug connect session TO hr;
Oracle建立表空間、建立使用者、授權、授權物件的訪問以及檢視許可權
1.建立臨時表空間
Oracle臨時表空間主要用來做查詢和存放一些緩衝區資料。臨時表空間消耗的主要原因是需要對查詢的中間結
果進行排序。
臨時表空間的主要作用:
索引create或rebuild
Order by 或 group by
Distinct 操作
Union 或 intersect 或 minus
Sort-merge joins
CREATE TEMPORARY TABLESPACE “TEST_TEMP”
TEMPFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\GIS\TEST_DATA.ora’
SIZE 20M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
2.建立使用者表空間
CREATE TABLESPACE “TEST_DATA”
LOGGING
DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\GIS\TEST_DATA.ora’
SIZE 20M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
3.建立使用者並設定其表空間
username:usertest
password:userpwd
CREATE USER usertest IDENTIFIED BY userpwd
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;
4.給使用者授權
GRANT
CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO username;
首先授權使用者testuser兩個基本的角色許可權
CONNECT角色: –是授予終端使用者的典型權利,最基本的
CREATE SESSION –建立會話
RESOURCE角色: –是授予開發人員的
CREATE CLUSTER –建立聚簇
CREATE PROCEDURE –建立過程
CREATE SEQUENCE –建立序列
CREATE TABLE –建表
CREATE TRIGGER –建立觸發器
CREATE TYPE –建立型別
CREATE OPERATOR –建立操作者
CREATE INDEXTYPE –建立索引型別
CREATE TABLE –建立表
授權角色給使用者的sql語句:
GRANT role TO username;
注意:這兩個角色的許可權可能需要在sys使用者下給testuser授權
grant select on csm_mid.pob_rtu to testuser;
grant connect, resource to testuser;
假如現在將使用者user1的表table1的select許可權賦予testuser
以user1連線到oracle,執行以下sql語句
grant select on table1 to testuser;
現在我們用testuser使用者名稱連線後查詢table1表的資料
select * user1.table1 from testuser;
注意:表table1之前必須要加上user1
如果我們希望查詢表table1時,前面不要加user1,可以這樣做:
首先授予testuser建立檢視的許可權
grant create view to testuser;
然後在在testuser使用者先以user1.table1為基表建立檢視v_user1_table1
create view v_user1_table1
as
select *
from user1.table1;
我們就可以用如下查詢了:
select * from v_user1_table1;
5.檢視使用者許可權
檢視所有使用者
SELECT * FROM DBA_USERS;
SELECT * FROM ALL_USERS;
SELECT * FROM USER_USERS;
檢視使用者系統許可權
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM USER_SYS_PRIVS;
檢視使用者物件或角色許可權
SELECT * FROM DBA_TAB_PRIVS;
SELECT * FROM ALL_TAB_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
檢視所有角色
SELECT * FROM DBA_ROLES;
檢視使用者或角色所擁有的角色
SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;
遇到no privileges on tablespace ‘tablespace ‘
alter user userquota 10M[unlimited] on tablespace;