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

2021-04-28 09:27:09 字數 3878 閱讀 1418

//建立臨時表空間

create temporary tablespace test_temp

tempfile 'e:/oracle/product/10.2.0/oradata/testserver/test_temp01.dbf'

size 32m

autoextend on

next 32m maxsize 2048m

extent management local;

//建立資料表空間

create tablespace test_data

logging

datafile 'e:/oracle/product/10.2.0/oradata/testserver/test_data01.dbf'

size 32m

autoextend on

next 32m maxsize 2048m

extent management local;

//建立使用者並指定表空間

create user testserver_user identified by testserver_user

default tablespace test_data

temporary tablespace test_temp; //給使用者授予許可權

grant connect,resource to testserver_user; //以後以該使用者登入,建立的任何資料庫物件都屬於test_temp 和test_data表空間,這就不用在每建立乙個物件給其指 定表空間了。

許可權允許使用者訪問屬於其它使用者的物件或執行程式,oracle系統提供三種許可權:

object 物件級

system 系統級

role 角色級

物件許可權

物件許可權就是指在表、檢視、序列、過程、函式或包等物件上執行特殊動作的權利。有九種不同型別的許可權可以授予給用 戶或角色。如下表: 許可權

alter

delete

execute

index

insert

read

reference

select

update

directory no

no no

no no

yes no

no no

function no

noyes no

no no

no no

noprocedure no

noyes no

no no

no no

nopackage no

noyes no

no no

no no

nodb object no

noyes no

no no

no no

nolibary no

noyes no

no no

no no

nooperation no

noyes no

no no

no no

nosequence

yes no

no no

no no

no no

notable

yesyes no

yesyes no

yesyes

yestype no

noyes no

no no

no no

noview no

yes no

noyes no

noyes

yes

系統許可權

系統許可權需要授予者有進行系統級活動的能力,如連線資料庫,更改使用者會話、建立表或建立使用者等等。

角色和角色許可權

角色許可權就是將屬於使用者的許可權授予乙個角色。任何許可權都可以授予給乙個角色。

系統預定義角色

1.connect, resource, dba

這些預定義角色主要是為了向後相容。其主要是用於資料庫管理。oracle建議使用者自己設計資料庫管理和安全的許可權規劃

,而不要簡單的使用這些預定角色。將來的版本中這些角色可能不會作為預定義角色。

2.delete_catalog_role, execute_catalog_role, select_catalog_role

這些角色主要用於訪問資料字典檢視和包。

3.exp_full_database, imp_full_database

這兩個角色用於資料匯入匯出工具的使用。

4.aq_user_role, aq_administrator_role

aq:advanced query。這兩個角色用於oracle高階查詢功能。

5.snmpagent

用於oracle enterprise manager和intelligent agent

6.recovery_catalog_owner

用於建立擁有恢復庫的使用者。關於恢復庫的資訊,參考oracle文件《oracle9i user-managed backup and recovery

data dictionary.

管理角色

1.建乙個角色

sql>create role role1;

2.授權給角色

sql>grant create any table,create procedure to role1;

3.授予角色給使用者

sql>grant role1 to user1;

4.檢視角色所包含的許可權

sql>select * from role_sys_privs;

5.建立帶有口令以角色(在生效帶有口令的角色時必須提供口令)

sql>create role role1 identified by password1;

6.修改角色:是否需要口令

sql>alter role role1 not identified;

sql>alter role role1 identified by password1;

7.設定當前使用者要生效的角色

(注:角色的生效是乙個什麼概念呢?假設使用者a有b1,b2,b3三個角色,那麼如果b1未生效,則b1所包含的許可權對於a來講

是不擁有的,只有角色生效了,角色內的許可權才作用於使用者,最大可生效角色數由引數max_enabled_roles設定;在使用者

登入後,oracle將所有直接賦給使用者的許可權和使用者預設角色中的許可權賦給使用者。)

sql>set role role1;//使role1生效

sql>set role role,role2;//使role1,role2生效

sql>set role role1 identified by password1;//使用帶有口令的role1生效

sql>set role all;//使用該使用者的所有角色生效

sql>set role none;//設定所有角色失效

sql>set role all except role1;//除role1外的該使用者的所有其它角色生效。

sql>select * from session_roles;//檢視當前使用者的生效的角色。

8.修改指定使用者,設定其預設角色

sql>alter user user1 default role role1;

sql>alter user user1 default role all except role1;

詳見oracle參考文件

9.刪除角色

sql>drop role role1;

角色刪除後,原來擁用該角色的使用者就不再擁有該角色了,相應的許可權也就沒有了。

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

建立臨時表空間 create temporary tablespace test temp tempfile e oracle product 10.2.0 oradata testserver test temp01.dbf size 32m autoextend onnext 32m maxsi...

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

建立臨時表空間 create temporary tablespace test temp tempfile e oracle product 10.2.0 oradata testserver test temp01.dbf size 32m autoextend on next 32m maxs...

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

建立臨時表空間 create temporary tablespace test temp tempfile e oracle product 10.2.0 oradata testserver test temp01.dbf size 32m autoextend on next 32m maxs...