Oracle使用者與許可權管理
Oracle許可權分類
1、 系統許可權:對於資料庫操作的許可權,包括但不限於:
CREATE TABLE
CREATE VIEW
CREATE SESSION
CREATE SEQUENCE
CREATE PROCEDURE
……
2、 對象許可權:對於使用者建立的表、視圖的訪問、修改能操作許可權,包括但不限於:
SELECT
UPDATE
INSERT
DELETE
……
許可權分配與回收
1、 許可權分配:
GRANT 許可權 TO 使用者/角色
例1:將對hr使用者下employee表的存取權限賦給使用者SCOTT
GRANT SELECT ON hr.employee TO scott;
例2:將角色CONNECT分配給使用者SCOTT
GRANT CONNECT TO scott
2、 許可權回收:
REVOKE 許可權 FROM 使用者/角色
例1:收回使用者scott對於hr使用者employee表的存取權限
REVOKE hr.employee FROM scott;
例2:收回使用者scott的CONNECT角色
REVOKE CONNECT FROM scott;
許可權繼承與回收
1、情景類比:Oracle總部擁有對於Oracle產品的系統管理權限,Oracle總部賦予Oracle中國管理中國境內的經營事宜,如果Oracle中國需要二次分配這種許可權,可以在總部賦予許可權的時候,使用WITH ADMIN OPTION(系統許可權繼承)/WITH GRANT OPTION(對象許可權繼承)
例:SYS 賦予使用者scott建立表的許可權,然後scott可以賦予其他使用者建立表的許可權
SOL>CONN SYS
GRANT CREATE TABLE TO scott WITHADMIN OPTION;
說明:
CREATE TABLE屬於系統許可權,使用關鍵字WITH ADMIN OPTION賦予許可權繼承;
此時,SCOTT使用者可以對於其他任意使用者賦予建立表的許可權
SQL>CONN SCOTT
GRANT CREATE TABLE TOtest;
如果是對象許可權的繼承則需要使用WITHGRANT OPTION
例:將對hr使用者下employee表的存取權限賦給使用者SCOTT,SCOTT使用者可以繼承
SQL>CONN hr
GRANT SELECT ON hr.employee TO scott WITH GRANT OPTION;
CONN scott
GRANT SELECT ONhr.employee TO test; --scott使用者將許可權二次分配給test使用者;
2、繼承許可權回收
回收許可權時,對於系統許可權而言,不會回收WITH ADMIN OPTION分配的子許可權;
對象許可權則會級聯回收,比如使用者scott使用者對hr使用者下employe表的存取權限,scott使用者又將存取權限二次分配給了新使用者test,則回收scott存取權限的同時,系統會自動回收由scott二次受指派的存取權;
常見角色許可權與分配原則
1、常見角色
DBA:擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。
RESOURCE:只可以建立實體,不可以建立資料庫結構。
CONNECT:只可以登入Oracle,不可以建立實體,不可以建立資料庫結構。
2、角色許可權分配原則:
對於普通使用者:授予connect, resource許可權。
對於DBA系統管理使用者:授予connect,resource, dba許可權。
常用的許可權查詢檢視
--1、顯示角色擁有的系統許可權
SELECT * FROMROLE_SYS_PRIVS;
--2、角色對於表列擁有的許可權
SELECT * FROMROLE_TAB_PRIVS;
--3、查詢使用者所屬角色
SELECT * FROMUSER_ROLE_PRIVS;
--4、顯示已授予給其他使用者的對象許可權,使用者是當前登入使用者
SELECT * FROMUSER_TAB_PRIVS_MADE
--5、顯示已授予給其他使用者的對象許可權,使用者是被授予者
SELECT * FROMUSER_TAB_PRIVS_RECD
--6、顯示列上已授與權限,使用者是當前登入使用者
SELECT * FROMUSER_COL_PRIVS_MADE
--7、顯示列上已授與權限,使用者是被授予者
SELECT * FROMUSER_COL_PRIVS_RECD
--8、顯示當前登入使用者所擁有的系統許可權
SELECT * FROMUSER_SYS_PRIVS
使用者管理
1、 建立使用者test,密碼test
CREATE USER test IDENTIFIED BY test;
2、 修改使用者test密碼為123456
ALTER USER test IDENTIFIED BY 123456;
3、 解鎖使用者SCOTT
ALTER USER scott ACCOUNT UNLOCK;
建立資料庫連接
CREATE [PUBLIC] DATABASE LINK 串連名稱
CONNECT 使用者名稱 IDENTIFIED BY 登入密碼
USING 資料庫執行個體名
Oracle 單一實例 從32位 遷移到 64位 方法
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2