1. 程式人生 > >表空間、使用者、許可權、角色 (資料控制語言-DCL-grant,revoke)

表空間、使用者、許可權、角色 (資料控制語言-DCL-grant,revoke)

1、登陸資料庫

SQLPLUS SYS AS SYSDBA; // 登陸SYS帳戶

SQLPLUS 使用者名稱/密碼@SID; // 登陸普通使用者

例如:SQLPLUS LAOSAN/[email protected]

連線到另外一個使用者

CONN 使用者名稱/密碼;

例如:CONN LAOSAN/LAOSAN;

2、表空間

ORACLE的表空間分了幾種型別,臨時表空間[TEMPFILE],使用者表空間[DATAFILE],大檔案表空間[BIGFILE]等,建立表空間,一般都是DBA乾的事情。

建立臨時表空間,幾個引數要重點注意一下

  SIZE *[K,M]表空間的初始大小,單位可以是[K,M]

  MAXSIZE *[K,M]表空間的最大儲存值,MAXSIZE UNLIMITED 是指表空間的大小不受限制。

  AUTOEXTEND ON NEXT *[K,M] 設定表空間自動擴充套件

  EXTENT MANAGEMENT LOCAL本地管理表空間

  EXTENT是"區間"的意思,在ORACLE資料庫中:EXTENT MANAGEMENT 有兩種方式 EXTENT MANAGEMENT LOCAL(本地管理); EXTENT MANAGEMENT DICTIONARY(資料字典管理)。預設的是LOCAL本地管理表空間有自動分配(AUTOALLOCATE)和統一大小分配(UNIFORM)兩種空間分配方式,自動分配方式(AUTOALLOCATE)是由系統來自動決定EXTENTS大小,而統一大小分配(UNIFORM)則是由使用者指定EXTENTS大小。這兩種分配方式都提高了空間管理效率。UNIFORM:預設為1M大小,在TEMP表空間裡為預設的,但是不能被應用在UNDO表空間。

--建立

CREATE TEMPORARY TABLESPACE  temptest

tempFile 

'E:\database\temptest01.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE 1024M,

'E:\database\temptest02.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE 1024M,

'E:\database\temptest03.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE 1024M EXTENT MANAGEMENT LOCAL;

-- TEMPORARY在建立臨時表空間時才需要,例如建立使用者表空間如下:

CREATE TABLESPACE usertest

dataFile 

'E:\database\usertest01.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED ,

'E:\database\usertest02.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED ,

'E:\database\usertest03.dbf' SIZE 64M  AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL ;

--增加表空間檔案、修改

ALTER TABLESPACE temptest 

ADD tempFile

 'E:\database\temptest04.dbf' SIZE 64M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED;

--刪除

DROP TABLESPACE temptest INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

--查看錶空間

SELECT * FROM DBA_TABLESPACES;

檢視當前使用者的預設表空間 

SELECT USERNAME,DEFAULT_TABLESPACE FROM USER_USERS; 

3、使用者

建立使用者

建立使用者時,需要注意如下幾個引數

IDENTIFIED BY *** 使用者的密碼

DEFAULT TABLESPACE  *** 預設使用者表空間

TEMPORARY TABLESPACE *** 預設臨時空間

CREATE USER laosan 

IDENTIFIED BY ls0123

DEFAULT TABLESPACE usertest

TEMPORARY TABLESPACE temptest;

CREATE USER 使用者名稱 IDENTIFIED BY 密碼; --如果不指定表空間,預設建立在SYSTEM表空間下

例如:CREATE USER LAOSAN IDENTIFIED BY LAOSAN DEFAULT TABLESPACE LAOSAN;

修改密碼

ALTER USER 使用者名稱 IDENTIFIED BY 新密碼;

例如:ALTER USER laosan IDENTIFIED BY ls4567;

修改使用者預設表空間

ALTER USER laosan DEFAULT TABLESPACE user_data;

修改使用者臨時表空間

ALTER USER laosan TEMPORARY TABLESPACE temp_data;

將使用者加鎖

ALTER USER laosan ACCOUNT LOCK; // 加鎖

ALTER USER laosan ACCOUNT UNLOCK; // 解鎖

刪除使用者

DROP USER 使用者名稱;

例如:DROP USER laosan;

刪除使用者以及跟使用者關聯的物件

DROP USER LAOSAN CASCADE;

檢視所有使用者

SELECT * FROM ALL_USERS;

檢視當前使用者

SHOW USER;

連線到另外一個使用者

CONN 使用者名稱/密碼;

例如:CONN laosan/laosan;

查詢使用者會話資訊

SELECT USERNAME, SID, SERIAL#, MACHINE FROM V$SESSION;

刪除使用者會話資訊

ALTER SYSTEM KILL SESSION 'sid, serial#';

查詢使用者SQL語句

SELECT USER_NAME, SQL_TEXT FROM V$OPEN_CURSOR;

4、給使用者授權/角色

Oracle的特殊許可權

系統許可權UNLIMITED TABLESPACE是隱含在DBA, RESOURCE角色中的一個系統許可權. 當用戶得到DBA或RESOURCE的角色時, UNLIMITED TABLESPACE系統許可權也隱式受權給使用者.

系統許可權UNLIMITED TABLESPACE不能被授予ROLE, 可以被授予使用者.

系統許可權UNLIMITED TABLESPACE不會隨著RESOURCE, DBA被授予ROLE而授予給使用者.

Oracle特殊角色

DBA角色,是授權資料庫管理員的許可權

CONNECT角色, 是授予終端使用者的典型權利,最基本的  一個(CREATE SESSION)

RESOURCE角色,是授予開發人員的  預設有八個許可權(CREATE SEQUENCE,CREATE TRIGGER,CREATE CLUSTER,CREATE PROCEDURE,CREATE TYPE,CREATE OPERATOR,CREATE TABLE,CREATE INDEXTYPE)

EXP_FULL_DATABASE角色,擁有匯出資料庫的許可權

IMP_FULL_DATABASE角色,擁有匯入資料庫的許可權

語法:

GRANT 許可權型別, 許可權型別 TO 使用者名稱1, 使用者名稱2;

GRANT 許可權型別, 許可權型別 表名 TO 使用者名稱1, 使用者名稱2;

例如:GRANT CONNECT, RESOURCE TO LAOSAN;

常用的系統許可權集合有以下三個:

CONNECT(基本的連線), RESOURCE(程式開發), DBA(資料庫管理)

常用的資料物件許可權有以下五個:

ALL ON 資料物件名, SELECT ON 資料物件名, UPDATE ON 資料物件名, DELETE ON 資料物件名, INSERT ON 資料物件名, ALTER ON 資料物件名

GRANT ALL TO PUBLIC;//授予所有許可權(ALL)給所有使用者(PUBLIC)

--授權

GRANT

CONNECT,                

RESOURCE,               

--DBA,                  

--UNLIMITED TABLESPACE,

CREATE  SESSION,         

CREATE ANY SEQUENCE,     

CREATE ANY TABLE,        

CREATE ANY VIEW ,        

CREATE ANY INDEX,        

CREATE ANY PROCEDURE,    

CREATE ANY DIRECTORY,    

ALTER  SESSION, 

ALTER ANY SEQUENCE,     

ALTER ANY TABLE,        

--ALTER ANY VIEW ,        --不能修改檢視

ALTER ANY INDEX,        

ALTER ANY PROCEDURE,    

--ALTER ANY DIRECTORY,    --不能修改目錄

--DROP  SESSION,       --不能刪除SESSION

DROP ANY SEQUENCE,     

DROP ANY TABLE,        

DROP ANY VIEW ,        

DROP ANY INDEX,        

DROP ANY PROCEDURE,    

DROP ANY DIRECTORY,    

SELECT ANY TABLE, 

SELECT ANY DICTIONARY,

INSERT ANY TABLE, 

UPDATE ANY TABLE, 

DELETE ANY TABLE,

DEBUG ANY PROCEDURE,

DEBUG CONNECT SESSION,

EXP_FULL_DATABASE,  

IMP_FULL_DATABASE     

TO laosan;

5、回收使用者許可權/角色

REVOKE 許可權型別, 許可權型別 FROM 使用者名稱;

REVOKE 許可權型別, 許可權型別 表名 FROM 使用者名稱1, 使用者名稱2;

6、查詢使用者許可權/角色

以下的查詢中,基本都要以DBA的角色進行查詢

檢視使用者擁有那些角色

SELECT * FROM DBA_ROLE_PRIVS A WHERE A.GRANTEE='laosan';

--或

SELECT * FROM DBA_SYS_PRIVS A WHERE A.GRANTEE='laosan';

檢視角色擁有那些許可權

SELECT ROLE, PRIVILEGE FROM ROLE_SYS_PRIVS WHERE ROLE='RESOURCE';   --RESOURCE,CONNECT,DBA

--或 

SELECT GRANTEE,PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';

7、許可權傳遞

即使用者A將許可權授予B,B可以將操作的許可權再授予C,命令如下:

GRANT ALERT TABLE ON tablename TO laosan WITH ADMIN OPTION;//關鍵字 WITH ADMIN OPTION

GRANT ALERT TABLE ON tablename TO laosan WITH GRANT OPTION;//關鍵字 WITH GRANT OPTION效果和ADMIN類似

WITH ADMIN OPTION 用於系統許可權授權,WITH GRANT OPTION 用於物件授權

但給一個使用者授予系統許可權帶上WITH ADMIN OPTION 時,此使用者可把此係統許可權授予其他使用者或角色,但收回這個使用者的系統許可權時,這個使用者已經授予其他使用者或角色的此係統許可權不會因傳播無效,如授予A系統許可權CREATE SESSION WITH ADMIN OPTION,然後A又把CREATE SESSION許可權授予B,但管理員收回A的CREATE SESSION許可權時,B依然擁有CREATE SESSION的許可權,但管理員可以顯式收回B CREATE SESSION的許可權,即直接REVOKE CREATE SESSION FROM B.

而WITH GRANT OPTION用於物件授權時,被授予的使用者也可把此物件許可權授予其他使用者或角色,不同的是但管理員收回用WITH GRANT OPTION授權的使用者物件許可權時,許可權會因傳播而失效,如GRANT SELECT ON TABLE WITH GRANT OPTION TO A,A使用者把此許可權授予B,但管理員收回A的許可權時,B的許可權也會失效,但管理員不可以直接收回B的SELECT ON TABLE 許可權。

8、角色

系統預定義角色

CONNECT, RESOURCE, DBA 這些預定義角色主要是為了向後相容。其主要是用於資料庫管理。

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

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

AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE AQ:Advanced Query。這兩個角色用於oracle高階查詢功能。

SNMPAGENT 用於oracle enterprise manager和Intelligent Agent

RECOVERY_CATALOG_OWNER 用於建立擁有恢復庫的使用者。

HS_ADMIN_ROLE 使用Oracle的異構服務功能的一個DBA需要這個角色來訪問資料字典相應的表。

角色即許可權的集合,可以把一個角色授予給使用者

CREATE ROLE myrole;//建立角色

GRANT CREATE SESSION TO myrole;//將建立SESSION的許可權授予MYROLE

GRANT myrole TO laosan;//授予laosan使用者MYROLE的角色

DROP ROLE myrole;//刪除角色

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

ALTER USER user1 DEFAULT ROLE role1;

ALTER USER user1 DEFAULT ROLE ALL EXCEPT role1;

角色的許可權查詢

SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='角色名';

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

CREATE ROLE role1 IDENTIFIED BY password1;

修改角色:是否需要口令

ALTER ROLE role1 NOT IDENTIFIED;

ALTER ROLE role1 IDENTIFIED BY password1;

查詢當前使用者被授予的角色

SELECT * FROM SESSION_ROLES ORDER BY ROLE;

相關推薦

空間使用者許可權角色 (資料控制語言-DCL-grant,revoke)

1、登陸資料庫 SQLPLUS SYS AS SYSDBA; // 登陸SYS帳戶 SQLPLUS 使用者名稱/密碼@SID; // 登陸普通使用者 例如:SQLPLUS LAOSAN/[email&

Oracle建立空間建立使用者,給使用者分配空間以及可操作許可權

建立表空間一共可分為四個步驟 具體指令碼如下:     第1步:建立臨時表空間       create temporary tablespace yd_temp       tempfile '

實驗目的: 1理解使用者與模式的概念,掌握oracle中使用者管理的基本方法 2理解系統許可權、物件許可權的概念,掌握分配許可權的方法 3理解角色的概念,掌握角色的應用方法 實驗內容: 一使用者

撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B

MySQL workbench8.0 CE基本用法(建立資料庫建立建立使用者設定使用者許可權建立SQL語句指令碼)

安裝完成MySQL後,開啟MySQL workbench8.0。 可以看到MySQL Connections下面是我們設定的MySQL本地登入賬號,這個賬號是我們在安裝MySQL過程中設定的,一般命名為root,埠為3306,密碼預設為空。雙擊進入。 要注意一點的

MongoDB增加使用者認證: 增加使用者刪除使用者修改使用者密碼讀寫許可權只讀許可權

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/han_cui/article/details/54314728 1.新增並驗證使用者 > use admin > db.addUser("zjx","tsji

python flask中填的一些坑,MySQL連結問題合集(MySQL拒絕訪問command 'x86獲取管理員許可權檢視埠號等問題)

1、在前置flask和python功能性外掛都安裝好的前提下,開始MySQL之旅。 首先是MySQL 的安裝,可以參考已下博文 然後MySQL和flask的一些安裝,例如pymysql和SQLAlchemy,自行安裝就可以了,你的書或者視訊內容上都有教這個的。

android之一鍵鎖屏開啟管理員許可權取消許可權解除安裝應用開啟應用

/* * 建立Myadmin繼承DeviceAdminReceiver; *在res檔案下建立xml資料夾,在xml下建立按lock.xml *在清單檔案中, <!--一鍵鎖屏的廣播接收者--> <receiver a

Linux 建立使用者賦予使用者許可權修改資料許可權修改只讀檔案

建立使用者 # useradd work 設定使用者密碼 # passwd work 賦予使用者許可權 方法一: 修改 /etc/sudoers 檔案,找到下面一行,把前面的

Linux學習筆記之——使用者使用者組檔案屬性許可權目錄概念

Linux學習筆記之——使用者、使用者組、檔案許可權、目錄概念 摘要:對一些很重要的概念和目錄進行說明、後面筆記中的練習就不再贅述這些概念以及他們之間的關係了。很重要! 一:使用者與使用者組         Linux是一個多使用者作業系統,那麼如何保證安全性和隱私性

ORCLE 創建空間,用戶,賦予角色以及授權

account ora 臨時表 efault locate group 和數 class val 1、創建表空間MMS_DATA 1 --創建表空間和數據庫文件dbf 2 CREATE TABLESPACE MMS_DATA DATAFILE 3 ‘D:\OR

navicat 關於orcale新建空間,使用者和許可權分配

轉自http://www.cnblogs.com/renboqie/p/5635611.html   上面連線資料庫 (此處最好用SYSTEM才有許可權) 下面建立表空間 建表空間的設定   表空間名的設定  

Oracle 建立使用者和空間,以及賦予許可權

1.建立表空間CREATE TABLESPACE a8v6space2 DATAFILE 'c:\oadata\oa_data.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZ

oracle在dos環境下建立使用者,空間並賦予使用者許可權

1.開啟資料庫驅動sqlplus/nolog   (此處切記不能有分號)2.以管理員許可權登入conn / as sysdba;3.建立新使用者create user 使用者名稱 identified by 密碼;4.給使用者授權grant resource,connect,

undo空間建立 : 資料庫恢復必備,資料保護體制

undo表空間建立:  create undo tablespace UNDOTBS1 datafile '/opt/oracle/oradata/CMCCWAP/undotbs01.dbf' size 200m autoextend on; .檢視資料庫的預設UNDO表空間

Oracle建立空間和使用者及授權並匯入資料學習筆記

第一步:連線資料庫 通過oracle自帶的客戶端工具sqlplus,以管理員角色連線資料庫 第二步:建立表空間 1.臨時表空間 create temporary tablespace 臨時表空間名 tempfile '表空間存放路徑\臨時表空間名.dbf' size

oracle 空間檔案達到32G後手動新增資料檔案

客戶忽然打電話來說資料庫疑似出了問題,資料插不進去。我遠端登入過去一看,還真是,按照錯誤提示一查,估計是資料庫檔案大小超標了。 "ORA-01654: 索引。。。無法通過8192(在表空間。。。中)擴充套件" 原來,oracle單個數據庫檔案上限是32g。雖然我們設了引數是自動

oracle建立空間,建立使用者,匯入dmp資料

匯入oracle資料的時候,經常到用的時候忘記,特整理一份,方便以後操作。 需要注意的是:建立表空間和使用者是在sqlPlus中執行,而匯入資料需要在cmd視窗執行。 一、建立表空間 create tablespace 表空間名 datafile 'd:/*.dbf' s

Oracle 的使用者許可權角色空間的管理

第二章:Oracle的使用者、許可權、角色及表空間的管理 Oracle資料庫查詢時如何對滿屏的sql命令做清屏處理呢?很多朋友喜歡使用SQL*Plus,SQL*Plus工具怎麼清屏呢? oracle清屏命令彙集: 1、同時按SHIFT和DELETE鍵,然

postgres空間模式和用戶/角色之間的關系

cat postgre pass dbn ole search pat location 相同 一、 角色(role)和用戶(user) 1. role postgres=# create role kanon password ‘kanon‘;

Oracle創建用戶角色授權空間

數據 revoke 空間名 plus with 其他 ini ota article oracle數據庫的權限系統分為系統權限與對象權限。系統權限( database system privilege )可以讓用戶執行特定的命令集。例如,create table權限允許用戶