Oracle 用戶及角色 介紹 收藏
一. 用戶管理 1.1 建立用戶(數據庫驗證)
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)權限
系統(tǒng)權限 作用 CREATE SESSION 連接到數據庫 CREATE TABLE 建表 CREATE TABLESPACE 建立表空間 CREATE VIEW 建立視圖 CREATE SEQUENCE 建立序列 CREATE USER 建立用戶 系統(tǒng)權限是指執(zhí)行特定類型SQL命令的權利,用于控制用戶可以執(zhí)行的一個或一類數據庫操作。(新建用戶沒有任何權限)
2.1 授予系統(tǒng)權限
GRANT CREATE SESSION,CREATE TABLE TO DAVE;
GRANT CREATE SESSION TO DAVE WITH ADMIN OPTION;
選項:ADMIN OPTION 使該用戶具有轉授系統(tǒng)權限的權限。
2.2 顯示系統(tǒng)權限
查看所有系統(tǒng)權限:
Select * from system_privilege_map;
顯示用戶所具有的系統(tǒng)權限:
Select * from dba_sys_privs;
顯示當前用戶所具有的系統(tǒng)權限:
Select * from user_sys_privs;
顯示當前會話所具有的系統(tǒng)權限:
Select * from session_privs;
2.3 收回系統(tǒng)權限
REVOKE CREATE TABLE FROM DAVE;
REVOKE CREATE SESSION FROM DAVE;
三 .角色:
角色是一組相關權限的命名集合,使用角色最主要的目的是簡化權限管理。
3.1 預定義角色。
CONNECT自動建立,包含以下權限:ALTER SESSION、CREATE CLUSTER、CREATE DATABASELINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATEVIEW。
RESOURCE自動建立,包含以下權限: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用戶角色
每個Oracle用戶都有一個名字和口令,并擁有一些由其創(chuàng)建的表、視圖和其他資源。
Oracle角色(role)就是一組權限(privilege)(或者是每個用戶根據其狀態(tài)和條件所需的訪問類型)。用戶可以給角色授予或賦予指定的權限,然后將角色賦給相應的用戶。一個用戶也可以直接給其他用戶授權。
數據庫系統(tǒng)權限(Database System Privilege)允許用戶執(zhí)行特定的命令集。例如,CREATE TABLE權限允許用戶創(chuàng)建表,GRANT ANY PRIVILEGE權限允許用戶授予任何系統(tǒng)權限。
數據庫對象權限(Database Object Privilege)使得用戶能夠對各個對象進行某些操作。例如DELETE權限允許用戶刪除表或視圖的行,SELECT權限允許用戶通過select從表、視圖、序列(sequences)或快照 (snapshots)中查詢信息。
4.1 創(chuàng)建用戶
Oracle內部有兩個建好的用戶:SYSTEM和SYS。用戶可直接登錄到SYSTEM用戶以創(chuàng)建其他用戶,因為SYSTEM具有創(chuàng)建別的用戶的權限。在安裝Oracle時,用戶或系統(tǒng)管理員首先可以為自己建立一個用戶。例如:
create user user01 identified by u01;
該命令還可以用來設置其他權限。
要改變一個口令,可以使用alter user命令:
alter user user01 identified by usr01;
現在user01的口令已由“u01”改為“usr01”。
除了alter user命令以外,用戶還可以使用password命令。如果使用password命令,用戶輸入的新口令將不在屏幕上顯示。有dba特權的用戶可以通過password命令改變任何其他用戶的口令;其他用戶只能改變自己的口令。
當用戶輸入password命令時,系統(tǒng)將提示用戶輸入舊口令和新口令,如下所示:
password
Changing password for user01
Old password:
New password:
Retype new password:
當成功地修改了口令時,用戶會得到如下的反饋:
Password changed
4.2 刪除用戶
刪除用戶,可以使用drop user命令,如下所示:
drop user user01;
如果用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字CASCADE,可刪除用戶所有的對象,然后再刪除用戶。
下面的例子用來刪除用戶與其對象:
drop user user01 CASCADE;
4.3 3種標準角色
Oracle為了兼容以前的版本,提供了三種標準的角色(role):CONNECT、RESOURCE和DBA。
4.3.1. CONNECT Role(連接角色)
臨時用戶,特別是那些不需要建表的用戶,通常只賦予他們CONNECT role。CONNECT是使用Oracle的簡單權限,這種權限只有在對其他用戶的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有CONNECT role的用戶還能夠創(chuàng)建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其他數據庫的鏈(link)。
4.3.2. RESOURCE Role(資源角色)
更可靠和正式的數據庫用戶可以授予RESOURCE role。RESOURCE提供給用戶另外的權限以創(chuàng)建他們自己的表、序列、過程(procedure)、觸發(fā)器(trigger)、索引(index)和簇(cluster)。
4.3.3. DBA Role(數據庫管理員角色)
DBA role擁有所有的系統(tǒng)權限----包括無限制的空間限額和給其他用戶授予各種權限的能力。SYSTEM由DBA用戶擁有。
一些DBA經常使用的典型權限。
1. grant(授權)命令
grant connect, resource to user01;
2. revoke(撤消)權限
revoke connect, resource from user01;
一個具有DBA角色的用戶可以撤消任何別的用戶甚至別的DBA的CONNECT、RESOURCE 和DBA的其他權限。當然,這樣是很危險的,因此,除非真正需要,DBA權限不應隨便授予那些不是很重要的一般用戶。
撤消一個用戶的所有權限,并不意味著從Oracle中刪除了這個用戶,也不會破壞用戶創(chuàng)建的任何表;只是簡單禁止其對這些表的訪問。其他要訪問這些表的用戶可以象以前那樣地訪問這些表。
五、創(chuàng)建角色
除了前面講到的三種系統(tǒng)角色----CONNECT、RESOURCE和DBA,用戶還可以在Oracle創(chuàng)建自己的role。用戶創(chuàng)建的role可以由表或系統(tǒng)權限或兩者的組合構成。為了創(chuàng)建role,用戶必須具有CREATE ROLE系統(tǒng)權限。
5.1 創(chuàng)建role
create role STUDENT;
這條命令創(chuàng)建了一個名為STUDENT的role。
5.2 對role 授權
一旦創(chuàng)建了一個role,用戶就可以給他授權。給role授權的grant命令的語法與對對用戶的語法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:
grant select on CLASS to STUDENT;
現在,擁有STUDENT角色的所有用戶都具有對CLASS表的select權限。
5.3 刪除角色
要刪除角色,可以使用drop role命令,如下所示:
drop role STUDENT;
指定的role連同與之相關的權限將從數據庫中全部刪除。
六. oracle sys system 用戶的區(qū)別
sys是Oracle數據庫中權限最高的賬號,具有create database的權限,
而system沒有這個權限,sys的角色是sysdba,system的角色是sysoper。 其余就是他們兩個用戶共有的權限了:
startup/shutdown/dba兩個用戶都是可以管理的。平時用system來管理數據庫就可以了。這個用戶的權限對于普通的數據庫管理來說已經足夠權限了。 七. 查看權限和角色
ORACLE中數據字典視圖分為3大類, 用前綴區(qū)別,分別為:USER,ALL 和 DBA,許多數據字典視圖包含相似的信息。
USER_*: 有關用戶所擁有的對象信息,即用戶自己創(chuàng)建的對象信息
ALL_*: 有關用戶可以訪問的對象的信息,即用戶自己創(chuàng)建的對象的信息加上其他用戶創(chuàng)建的對象但該用戶有權訪問的信息
DBA_*:有關整個數據庫中對象的信息
(這里的*可以為TABLES, INDEXES, OBJECTS, USERS等)。
比如:只知道scott用戶的密碼,需要查看一下scott的一些信息
7.1、查scott用戶的創(chuàng)建時間、用戶狀態(tài)、使用的默認表空間、臨時表空間等信息 SQL> conn scott/admin
已連接。
SQL>select * from user_users;
另:select * from all_users;(scott用戶可以訪問其他數據庫用戶對信息的用戶名)
另:select * from all_users;(所有數據庫的用戶信息,各用戶的密碼、狀態(tài)、默認表空間、臨時表空間等) 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”表示這個用戶是否可以把該具有的角色賦予給其他的用戶
另:沒有all_role_privs這個視圖
另:select * from dba_role_privs(所有數據庫用戶具有哪些角色,這個視圖只有dba角色的權限才可以查詢) 7.3、查看scott用戶自己具有什么的權限
SQL> select * from session_privs;
7.4、查看scott用戶具有什么的系統(tǒng)權限呢
SQL>select * from user_sys_privs;
另:沒有all_sys_privs視圖
另:select * from dba_sys_privs;(所有數據庫用戶、角色所用于的系統(tǒng)權限) 7.5、查看scott用戶中,都哪些用戶把對象授予給scott用戶呢(讀取其他用戶對象的權限)
SQL>select * from user_tab_privs;
另:select * from all_tab_privs; select * from dba_tab_privs;
7.6、查看scott用戶中擁有的resource角色都具有什么權限呢
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;數據庫中所有用戶的表 7.8、查看scott用戶已經使用多大的空間,允許使用的最大空間是多少
SQL> select tablespace_name,bytes,max_bytes from user_ts_quotas;
另:select * from dba_ts_quotas;(所有的數據庫用戶在每個表空間已使用的空間,最大空間)
7.9、把自己的表賦予給其他用戶
SQL>grant select on emp to mzl;
查看都把哪些表什么權限賦予了其他用戶
SQL>select * from user_tab_privs_made
7.10、把表的某一列操作權限賦予給其他用戶
SQL>grant update(job) on emp to mzl;
注:查看數據庫中所有的角色select * form. dba_roles;
7.11、sys授予scott用戶dba角色
SQL> conn /as sysdba
已連接。
SQL> grant dba to scott;
授權成功。
另:如果這樣
SQL> grant dba to scott with admin option;
授權成功。
scott用戶就可以把dba的權限授予給其他的用戶了。
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
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/tianlesoftware/archive/2009/11/08/4786956.aspx
|
|