一. 用戶管理
1.1 建立用戶(數(shù)據(jù)庫驗(yàn)證)
CREATE USER DAVE IDENTIFIED BY pwd
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 5m ON users;
1.2 修改用戶
ALTER USER DAVE QUOTA 0 ON SYSTEM;
1.3 刪除用戶
DROP USER DAVE;
DROP USER DAVE CASCADE;
1.4 顯示用戶信息
SELECT * FROM DBA_USERS
SELECT * FROM DBA_TS_QUOTAS
二.系統(tǒng)權(quán)限
系統(tǒng)權(quán)限 | 作用 |
CREATE SESSION | 連接到數(shù)據(jù)庫 |
CREATE TABLE | 建表 |
CREATE TABLESPACE | 建立表空間 |
CREATE VIEW | 建立視圖 |
CREATE SEQUENCE | 建立序列 |
CREATE USER | 建立用戶 |
系統(tǒng)權(quán)限是指執(zhí)行特定類型SQL命令的權(quán)利,用于控制用戶可以執(zhí)行的一個(gè)或一類數(shù)據(jù)庫操作。(新建用戶沒有任何權(quán)限)
2.1 授予系統(tǒng)權(quán)限
GRANT CREATE SESSION,CREATE TABLE TO DAVE;
GRANT CREATE SESSION TO DAVE WITH ADMIN OPTION;
選項(xiàng):ADMIN OPTION 使該用戶具有轉(zhuǎn)授系統(tǒng)權(quán)限的權(quán)限。
2.2 顯示系統(tǒng)權(quán)限
查看所有系統(tǒng)權(quán)限:
Select * from system_privilege_map;
顯示用戶所具有的系統(tǒng)權(quán)限:
Select * from dba_sys_privis;
顯示當(dāng)前用戶所具有的系統(tǒng)權(quán)限:
Select * from user_sys_privis;
顯示當(dāng)前會(huì)話所具有的系統(tǒng)權(quán)限:
Select * from session_privis;
2.3 收回系統(tǒng)權(quán)限
REVOKE CREATE TABLE FROM DAVE;
REVOKE CREATE SESSION FROM DAVE;
三 .角色:
角色是一組相關(guān)權(quán)限的命名集合,使用角色最主要的目的是簡(jiǎn)化權(quán)限管理。
3.1 預(yù)定義角色。
CONNECT自動(dòng)建立,包含以下權(quán)限:ALTER SESSION、CREATE CLUSTER、CREATE DATABASELINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATEVIEW。
RESOURCE自動(dòng)建立,包含以下權(quán)限:CREATE CLUSTER、CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE、CREATE TRIGGR。
3.2 顯示角色信息,
§ROLE_SYS_PRIVS
§ROLE_TAB_PRIVS
§ROLE_ROLE_PRIVS
§SESSION_ROLES
§USER_ROLE_PRIVS
§DBA_ROLES
四. Oracle用戶角色
每個(gè)Oracle用戶都有一個(gè)名字和口令,并擁有一些由其創(chuàng)建的表、視圖和其他資源。
Oracle角色(role)就是一組權(quán)限(privilege)(或者是每個(gè)用戶根據(jù)其狀態(tài)和條件所需的訪問類型)。用戶可以給角色授予或賦予指定的權(quán)限,然后將角色賦給相應(yīng)的用戶。一個(gè)用戶也可以直接給其他用戶授權(quán)。
數(shù)據(jù)庫系統(tǒng)權(quán)限(Database System Privilege)允許用戶執(zhí)行特定的命令集。例如,CREATE TABLE權(quán)限允許用戶創(chuàng)建表,GRANT ANY PRIVILEGE權(quán)限允許用戶授予任何系統(tǒng)權(quán)限。
數(shù)據(jù)庫對(duì)象權(quán)限(Database Object Privilege)使得用戶能夠?qū)Ω鱾(gè)對(duì)象進(jìn)行某些操作。例如DELETE權(quán)限允許用戶刪除表或視圖的行,SELECT權(quán)限允許用戶通過select從表、視圖、序列(sequences)或快照 (snapshots)中查詢信息。
4.1 創(chuàng)建用戶
Oracle內(nèi)部有兩個(gè)建好的用戶:SYSTEM和SYS。用戶可直接登錄到SYSTEM用戶以創(chuàng)建其他用戶,因?yàn)?/span>SYSTEM具有創(chuàng)建別的用戶的權(quán)限。在安裝Oracle時(shí),用戶或系統(tǒng)管理員首先可以為自己建立一個(gè)用戶。例如:
create user user01 identified by u01;
該命令還可以用來設(shè)置其他權(quán)限。
要改變一個(gè)口令,可以使用alter user命令:
alter user user01 identified by usr01;
現(xiàn)在user01的口令已由“u01”改為“usr01”。
除了alter user命令以外,用戶還可以使用password命令。如果使用password命令,用戶輸入的新口令將不在屏幕上顯示。有dba特權(quán)的用戶可以通過password命令改變?nèi)魏纹渌脩舻目诹;其他用戶只能改變自己的口令?/span>
當(dāng)用戶輸入password命令時(shí),系統(tǒng)將提示用戶輸入舊口令和新口令,如下所示:
password
Changing password for user01
Old password:
New password:
Retype new password:
當(dāng)成功地修改了口令時(shí),用戶會(huì)得到如下的反饋:
Password changed
4.2 刪除用戶
刪除用戶,可以使用drop user命令,如下所示:
drop user user01;
如果用戶擁有對(duì)象,則不能直接刪除,否則將返回一個(gè)錯(cuò)誤值。指定關(guān)鍵字CASCADE,可刪除用戶所有的對(duì)象,然后再刪除用戶。
下面的例子用來刪除用戶與其對(duì)象:
drop user user01 CASCADE;
4.3 3種標(biāo)準(zhǔn)角色
Oracle為了兼容以前的版本,提供了三種標(biāo)準(zhǔn)的角色(role):CONNECT、RESOURCE和DBA。
4.3.1. CONNECT Role(連接角色)
臨時(shí)用戶,特別是那些不需要建表的用戶,通常只賦予他們CONNECT role。CONNECT是使用Oracle的簡(jiǎn)單權(quán)限,這種權(quán)限只有在對(duì)其他用戶的表有訪問權(quán)時(shí),包括select、insert、update和delete等,才會(huì)變得有意義。擁有CONNECT role的用戶還能夠創(chuàng)建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會(huì)話(session)和與其他數(shù)據(jù)庫的鏈(link)。
4.3.2. RESOURCE Role(資源角色)
更可靠和正式的數(shù)據(jù)庫用戶可以授予RESOURCE role。RESOURCE提供給用戶另外的權(quán)限以創(chuàng)建他們自己的表、序列、過程(procedure)、觸發(fā)器(trigger)、索引(index)和簇(cluster)。
4.3.3. DBA Role(數(shù)據(jù)庫管理員角色)
DBA role擁有所有的系統(tǒng)權(quán)限----包括無限制的空間限額和給其他用戶授予各種權(quán)限的能力。SYSTEM由DBA用戶擁有。
一些DBA經(jīng)常使用的典型權(quán)限。
1. grant(授權(quán))命令
grant connect, resource to user01;
2. revoke(撤消)權(quán)限
revoke connect, resource from user01;
一個(gè)具有DBA角色的用戶可以撤消任何別的用戶甚至別的DBA的CONNECT、RESOURCE 和DBA的其他權(quán)限。當(dāng)然,這樣是很危險(xiǎn)的,因此,除非真正需要,DBA權(quán)限不應(yīng)隨便授予那些不是很重要的一般用戶。
撤消一個(gè)用戶的所有權(quán)限,并不意味著從Oracle中刪除了這個(gè)用戶,也不會(huì)破壞用戶創(chuàng)建的任何表;只是簡(jiǎn)單禁止其對(duì)這些表的訪問。其他要訪問這些表的用戶可以象以前那樣地訪問這些表。
五、創(chuàng)建角色
除了前面講到的三種系統(tǒng)角色----CONNECT、RESOURCE和DBA,用戶還可以在Oracle創(chuàng)建自己的role。用戶創(chuàng)建的role可以由表或系統(tǒng)權(quán)限或兩者的組合構(gòu)成。為了創(chuàng)建role,用戶必須具有CREATE ROLE系統(tǒng)權(quán)限。
5.1 創(chuàng)建role
create role STUDENT;
這條命令創(chuàng)建了一個(gè)名為STUDENT的role。
5.2 對(duì)role 授權(quán)
一旦創(chuàng)建了一個(gè)role,用戶就可以給他授權(quán)。給role授權(quán)的grant命令的語法與對(duì)對(duì)用戶的語法相同。在給role授權(quán)時(shí),在grant命令的to子句中要使用role的名稱,如下所示:
grant select on CLASS to STUDENT;
現(xiàn)在,擁有STUDENT角色的所有用戶都具有對(duì)CLASS表的select權(quán)限。
5.3 刪除角色
要?jiǎng)h除角色,可以使用drop role命令,如下所示:
drop role STUDENT;
指定的role連同與之相關(guān)的權(quán)限將從數(shù)據(jù)庫中全部刪除。
六. oracle sys system 用戶的區(qū)別
sys是Oracle數(shù)據(jù)庫中權(quán)限最高的帳號(hào),具有create database的權(quán)限,
而system沒有這個(gè)權(quán)限,sys的角色是sysdba,system的角色是sysoper。
其余就是他們兩個(gè)用戶共有的權(quán)限了:
startup/shutdown/dba兩個(gè)用戶都是可以管理的。平時(shí)用system來管理數(shù)據(jù)庫就可以了。這個(gè)用戶的權(quán)限對(duì)于普通的數(shù)據(jù)庫管理來說已經(jīng)足夠權(quán)限了。
七. 查看權(quán)限和角色
ORACLE中數(shù)據(jù)字典視圖分為3大類, 用前綴區(qū)別,分別為:USER,ALL 和 DBA,許多數(shù)據(jù)字典視圖包含相似的信息。
USER_*: 有關(guān)用戶所擁有的對(duì)象信息,即用戶自己創(chuàng)建的對(duì)象信息
ALL_*: 有關(guān)用戶可以訪問的對(duì)象的信息,即用戶自己創(chuàng)建的對(duì)象的信息加上其他用戶創(chuàng)建的對(duì)象但該用戶有權(quán)訪問的信息
DBA_*:有關(guān)整個(gè)數(shù)據(jù)庫中對(duì)象的信息
(這里的*可以為TABLES, INDEXES, OBJECTS, USERS等)。
比如:只知道scott用戶的密碼,需要查看一下scott的一些信息
7.1、查scott用戶的創(chuàng)建時(shí)間、用戶狀態(tài)、使用的默認(rèn)表空間、臨時(shí)表空間等信息
SQL> conn scott/admin
已連接。
SQL>select * from user_users;
另:select * from all_users;(scott用戶可以訪問其他數(shù)據(jù)庫用戶對(duì)信息的用戶名)
另:select * from all_users;(所有數(shù)據(jù)庫的用戶信息,各用戶的密碼、狀態(tài)、默認(rèn)表空間、臨時(shí)表空間等)
7.2、查看scott用戶自己擁有什么角色
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SCOTT CONNECT NO YES NO
SCOTT RESOURCE NO YES NO
注:“ADM”表示這個(gè)用戶是否可以把該具有的角色賦予給其他的用戶
另:沒有all_role_privs這個(gè)視圖
另:select * from dba_role_privs(所有數(shù)據(jù)庫用戶具有哪些角色,這個(gè)視圖只有dba角色的權(quán)限才可以查詢)
7.3、查看scott用戶自己具有什么的權(quán)限
SQL> select * from session_privs;
7.4、查看scott用戶具有什么的系統(tǒng)權(quán)限呢
SQL>select * from user_sys_privs;
另:沒有all_sys_privs視圖
另:select * from dba_sys_privs;(所有數(shù)據(jù)庫用戶、角色所用于的系統(tǒng)權(quán)限)
7.5、查看scott用戶中,都哪些用戶把對(duì)象授予給scott用戶呢(讀取其他用戶對(duì)象的權(quán)限)
SQL>select * from user_tab_privs;
另:select * from all_tab_privs; select * from dba_tab_privs;
7.6、查看scott用戶中擁有的resource角色都具有什么權(quán)限呢
SQL> select * from role_sys_privs where role='RESOURCE';
ROLE PRIVILEGE ADM
------------------------------ -------------------------------
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
已選擇8行。
7.7、scott用戶自己擁有多少的表
SQL>select * from user_tables;
另:select * from all_tables; 其他用戶所擁有的表
另:select * from dba_tables;數(shù)據(jù)庫中所有用戶的表
7.8、查看scott用戶已經(jīng)使用多大的空間,允許使用的最大空間是多少
SQL> select tablespace_name,bytes,max_bytes from user_ts_quotas;
另:select * from dba_ts_quotas;(所有的數(shù)據(jù)庫用戶在每個(gè)表空間已使用的空間,最大空間)
7.9、把自己的表賦予給其他用戶
SQL>grant select on emp to mzl;
查看都把哪些表什么權(quán)限賦予了其他用戶
SQL>select * from user_tab_privs_made
7.10、把表的某一列操作權(quán)限賦予給其他用戶
SQL>grant update(job) on emp to mzl;
注:查看數(shù)據(jù)庫中所有的角色select * form. dba_roles;
7.11、sys授予scott用戶dba角色
SQL> conn /as sysdba
已連接。
SQL> grant dba to scott;
授權(quán)成功。
另:如果這樣
SQL> grant dba to scott with admin option;
授權(quán)成功。
scott用戶就可以把dba的權(quán)限授予給其他的用戶了。
7.12 sys回收scott用戶的dba角色
SQL> revoke dba from scott;
撤銷成功。
八.Oracle 用戶及作用介紹
Username
Password
Description
See Also
CTXSYS
CTXSYS
The Oracle Text account
Oracle Text Reference
DBSNMP
DBSNMP
The account used by the Management Agent component of Oracle Enterprise Manager to monitor and manage the database
Oracle Enterprise Manager Grid Control Installation and Basic Configuration
LBACSYS
LBACSYS
The Oracle Label Security administrator account
Oracle Label Security Administrator's Guide
MDDATA
MDDATA
The schema used by Oracle Spatial for storing Geocoder and router data
Oracle Spatial User's Guide and Reference
MDSYS
MDSYS
The Oracle Spatial and Oracle interMedia Locator administrator account
Oracle Spatial User's Guide and Reference
DMSYS
DMSYS
The Oracle Data Mining account.
Oracle Data Mining Administrator's Guide
Oracle Data Mining Concepts
OLAPSYS
MANAGER
The account used to create OLAP metadata structures. It owns the OLAP Catalog (CWMLite).
Oracle OLAP Application Developer's Guide
ORDPLUGINS
ORDPLUGINS
The Oracle interMedia user. Plug-ins supplied by Oracle and third party format plug-ins are installed in this schema.
Oracle interMedia User's Guide
ORDSYS
ORDSYS
The Oracle interMedia administrator account
Oracle interMedia User's Guide
OUTLN
OUTLN
The account that supports plan stability. Plan stability enables you to maintain the same execution plans for the same SQL statements. OUTLN acts as a role to centrally manage metadata associated with stored outlines.
Oracle Database Performance Tuning Guide
SI_INFORMTN_SCHEMA
SI_INFORMTN_SCHEMA
The account that stores the information views for the SQL/MM Still Image Standard
Oracle interMedia User's Guide
SYS
CHANGE_ON_INSTALL
The account used to perform database administration tasks
Oracle Database Administrator's Guide
SYSMAN
CHANGE_ON_INSTALL
The account used to perform Oracle Enterprise Manager database administration tasks. Note that SYS and SYSTEM can also perform these tasks.
Oracle Enterprise Manager Grid Control Installation and Basic Configuration
SYSTEM
MANAGER
Another account used to perform database administration tasks.
Oracle Database Administrator's Guide