下面是有關Oracle 9i創建表空間,用戶,授權,角色.常用的SQL語句,用sys帳號登陸,連接身份選SYSDBA,執行如下語句
// 創建表空間
drop tablespace test;
create tablespace test
DATAFILE 'D:\Oracle\oradata\test\test.dbf'
size 10M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
alter user scott quota unlimited on test;
commit;
創建了一個名為test的表空間,數據庫文件創建 在D:\Oracle\oradata\test\test.dbf,並給scott 帳號授權使用表空間。
//創建scott用戶 並分配表空間
drop user scott cascade;
create user scott
identifIEd by tiger
default tablespace test
quota 100M on test;
commit;
//創建完畢後授權
Grant connect,resource,create session,create table,create sequence,create any vIEw,EXP_FULL_DATABASE, IMP_FULL_DATABASE, DBA,to scott;
//sql plus 中執行.sql 文件
@d:\xzsp_hrb_Oracle_doc.sql
//創建一個名為manager的角色
create role manager;
//給manager這個角色授於相應的系統權限
grant create table,create vIEw,create session to manager;
//授予針對某個對象的權限如查詢某個表的權限
grant select on 表名字 to manager; //可以把一個權限同時賦予多個角色或者用戶,但不能把多個權限同時賦予多個角色或者用戶,需分開執行。
//把manager這個角色分配給scott,xzsp兩個帳號。
grant manager to scott,xzsp;
//修改帳號scott密碼為tiger
alert user scott identifIEd by tiger;
//scott用戶建的表,如果想給其他用戶權限則必須用scott用戶登陸後執行如下語句,即使你是DBA也不把
一個用戶(scott)所創建的表賦予給另外一個用戶(xzsp)操作的權限,除非scott用戶給DBA授權。
grant select on 表名字 to xzsp;
grant select on employees to scott,xzsp;
//用scott用戶登陸 給system授權
grant select on student to system with grant option;
//用system 登陸,再把查詢student的權限授予另外一個用戶。
grant select on scott.student to xzsp;
//system同時可取消xzsp用戶的該權限。
revoke select on scott.student from xzsp;
權限傳遞的級聯:scott用戶把權限給A(同時允許A傳遞給其他用戶 with grand option),A把權限再傳遞給B,如果scott用戶撤消A的權限,則B也會失去相應的權限。
grant update (department_name,location_id) on departments to scott,xzsp; //授予用戶修改某個表中指定字段的權限。
grant select,insert on departments to scott with grant option; //把查詢,增加departments表的權限給scott用戶並允許他把權限授予給其他擁護。
grant select on scott.departments to public; //授予public 角色查詢scott下departments表的權限。
//訪問其他數據庫對象(database links)
create public database link hq.acme.com using 'sales';
select * from [email protected] //emp為表名
CREATE USER 創建一個用戶(通常由DBA來完成)。
GRANT 給於其他用戶使用你自己對象的權限。
CREATE ROLE 創建一個權限的集合,即角色。
ALTER USER 修改一個用戶的密碼。
REVOKE 撤消一個用戶在某個對象上的權限,如 表 視圖等。
----------------------查看用戶權限-----------------------------------
--------------------------------------------------------------------------
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統權限:
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看用戶對象權限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用戶或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;