ORACLE 使用者、Profile 及許可權
使用者管理
一、建立使用者:建立的新使用者是沒有任何許可權的,甚至連登陸的資料庫的許可權都沒有,需要為其指定相應的許可權。
SQL> Create User username
Identified by password
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
例:
SQL> Create user acc01
identified by acc01 // 如果密碼是數字,請用雙引號括起來
default tablespace account
temporary tablespace temp
profile default
quota 50m on account;
SQL> grant connect, resource to acc01;
[*] 查詢使用者預設表空間、臨時表空間
SQL> select username, default_tablespace, temporary_tablespace from dba_users;
[*] 查詢系統資原始檔名:
SQL> select * from dba_profiles;
資原始檔類似表,一旦建立就會儲存在資料庫中。
SQL> select username, profile, default_tablespace, temporary_tablespace from dba_users;
SQL> create profile common limit
failed_login_attempts 5
idle_time 5;
SQL> Alter user acc01 profile common;
二、修改使用者:
SQL> Alter User 使用者名稱
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
1、修改口令字:Alter user acc01 identified by "12345";
2、修改使用者預設表空間:Alter user acc01 default tablespace users;
3、修改使用者臨時表空間:Alter user acc01 temporary tablespace temp_data;
4、強制使用者修改口令字:Alter user acc01 password expire;
5、將使用者加鎖:Alter user acc01 account lock; // 加鎖
Alter user acc01 account unlock; // 解鎖
三、刪除使用者
SQL>drop user 使用者名稱; //使用者沒有建任何實體
SQL>drop user 使用者名稱 CASCADE; // 將使用者及其所建實體全部刪除
*1. 當前正連線的使用者不得刪除。
四、監視使用者:
1、查詢使用者會話資訊:select username, sid, serial#, machine from v$session;
2、刪除使用者會話資訊:Alter system kill session 'sid, serial#';
3、查詢使用者SQL語句: select user_name, sql_text from v$open_cursor;
使用者Profile
一、Profile目的:
Oracle系統中的profile可以用來對使用者所能使用的資料庫資源進行限制,使用Create Profile命令建立一個Profile,用它來實現對資料庫資源的限制使用,如果把該profile分配給使用者,則該使用者所能使用的資料庫資源都在該profile的限制之內。具體管理內容有:CPU的時間、I/O的使用、IDLE TIME(空閒時間)、CONNECT TIME(連線時間)、併發會話數量、口令機制等。
二、條件:
建立profile必須要有CREATE PROFILE的系統許可權。為使用者指定資源限制,必須:
1.動態地使用alter system或使用初始化引數resource_limit使資源限制生效。該改變對密碼資源無效,密碼資源總是可用。
SQL> show parameter resource_limit
SQL> alter system set resource_limit=true;
2.使用create profile建立一個定義對資料庫資源進行限制的profile。
3.使用create user 或alter user命令把profile分配給使用者。
三、檢視系統的預設PROFILE
1、通過dba_profiles檢視檢視一下系統中預設都有哪些PROFILE
資料庫建立以後,系統中只會存在一個名為DEFAULT的預設PROFILE,在使用者建立之後,如果不做特殊指定,每個使用者的PROFILE都會預設的使用個預設的PROFILE。
[email protected]> select distinct profile from dba_profiles;
2、全面檢視這個 PROFILE 包含哪些限制定義
[email protected]> col PROFILE for a12
[email protected]> col RESOURCE_NAME for a25
[email protected]> col LIMIT for a15
[email protected]> select * from dba_profiles order by 1,2;
3、結論:DEFAULT PROFILE 只對密碼的錯誤嘗試次數做了限制(最多可以錯誤輸錯10次密碼)。如想改變限制條件,有兩種方法:第一種方法是對預設的PROFILE做個性化調整;第二種方法是重新定製一個新的PROFILE。
四、建立 profile 的語法如下:
CREATE PROFILE profile
LIMIT { resource_parameters 對資源的限制
| password_parameters 對密碼的限制
}... ;
<resource_parameters>
{{ SESSIONS_PER_USER 每個使用者名稱並行會話數
| CPU_PER_SESSION 每會話可用的CPU時間,單位0.01秒
| CPU_PER_CALL 一次SQL呼叫(解析、執行和獲取)允許的CPU時間
| CONNECT_TIME 會話連線時間(分鐘)
| IDLE_TIME 會話空閒時間(分鐘),超出將斷開
| LOGICAL_READS_PER_SESSION
| LOGICAL_READS_PER_CALL
| COMPOSITE_LIMIT “組合打法”
}
{ integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA
{ integer [ K | M ] | UNLIMITED | DEFAULT }
}
< password_parameters >
{{ FAILED_LOGIN_ATTEMPTS 被鎖定前的試錯次數
| PASSWORD_LIFE_TIME 密碼使用天數,預設180天
| PASSWORD_REUSE_TIME 密碼可重用的間隔時間(結合PASSWORD_REUSE_MAX)
| PASSWORD_REUSE_MAX 密碼最大改變次數(結合PASSWORD_REUSE_TIME)
| PASSWORD_LOCK_TIME 超過試錯次數後,被鎖定的天數,預設1天
| PASSWORD_GRACE_TIME 密碼過期後還可使用原密碼的天數
}
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
{ function | NULL | DEFAULT }
}
五、部分解釋:
profile:配置檔案的名稱。Oracle資料庫以以下方式強迫資源限制:
1.如果使用者超過了connect_time或idle_time的會話資源限制,資料庫就回滾當前事務,並結束會話。使用者再次執行命令,資料庫則返回一個錯誤
2.如果使用者試圖執行超過其他的會話資源限制的操作,資料庫放棄操作,回滾當前事務並立即返回錯誤。使用者之後可以提交或回滾當前事務,必須結束會話。
提示:可以將一條分成多個段,如1小時(1/24天)來限制時間,可以為使用者指定資源限制,但是資料庫只有在引數生效後才會執行限制。
Unlimited:分配該profile的使用者對資源使用無限制,當使用密碼引數時,unlimited意味著沒有對引數加限制。
Default:指定為default意味著忽略對profile中的一些資源限制,Default profile初始定義對資源不限制,可以通過alter profile命令來改變。
Resource_parameter部分
Logical_reads_per_session:每會話允許讀的資料塊的數目,包括從記憶體和磁碟讀的所有資料塊。
Logical_read_per_call:一次執行SQL(解析、執行和提取)呼叫允許讀的資料塊最大數目。
Private_sga:指定一個會話可以在共享池(SGA)中所允許分配的最大空間,以位元組為單位。(該限制只在使用共享伺服器結構時才有效,會話在SGA中的私有空間包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。
Composite_limit:指定一個會話的總的資源消耗,以service units單位表示。Oracle資料庫以有利的方式計算cpu_per_session,connect_time,logical_reads_per_session和private-sga總的service units
Password_parameter部分:
Password_life_time:指定同一密碼所允許使用的天數。如果同時指定了password_grace_time引數,如果在grace period內沒有改變密碼,則密碼會失效,連線資料庫被拒絕。如果沒有設定password_grace_time引數,預設值unlimited將引發一個數據庫警告,但是允許使用者繼續連線。
Password_reuse_time和password_reuse_max:這兩個引數必須互相關聯設定,password_reuse_time指定了密碼不能重用前的天數,而password_reuse_max則指定了當前密碼被重用之前密碼改變的次數。兩個引數都必須被設定為整數。
1.如果為這兩個引數指定了整數,則使用者不能重用密碼直到密碼被改變了password_reuse_max指定的次數以後在password_reuse_time指定的時間內。
如:password_reuse_time=30,password_reuse_max=10,使用者可以在30天以後重用該密碼,要求密碼必須被改變超過10次。
2.如果指定了其中的一個為整數,而另一個為unlimited,則使用者永遠不能重用一個密碼。
3.如果指定了其中的一個為default,Oracle資料庫使用定義在profile中的預設值,預設情況下,所有的引數在profile中都被設定為unlimited,如果沒有改變profile預設值,資料庫對該值總是預設為unlimited。
4.如果兩個引數都設定為unlimited,則資料庫忽略他們。
Password_grace_time:指定寬限天數,資料庫發出警告到登陸失效前的天數。如果資料庫密碼在這中間沒有被修改,則過期會失效。
Password_verify_function:該欄位允許將複雜的PL/SQL密碼驗證指令碼做為引數傳遞到create profile語句。Oracle資料庫提供了一個預設的指令碼,但是自己可以建立自己的驗證規則或使用第三方軟體驗證。 對Function名稱,指定的是密碼驗證規則的名稱,指定為Null則意味著不使用密碼驗證功能。如果為密碼引數指定表示式,則該表示式可以是任意格式,除了資料庫標量子查詢。
六、嘗試建立一個混合型的PROFILE(包含資源限制和密碼限制):
[email protected]> CREATE PROFILE sec_profile LIMIT
2 SESSIONS_PER_USER UNLIMITED
3 CPU_PER_SESSION UNLIMITED
4 CPU_PER_CALL 6000
5 CONNECT_TIME 60
6 LOGICAL_READS_PER_SESSION DEFAULT
7 LOGICAL_READS_PER_CALL 6000
8 COMPOSITE_LIMIT 6000000
9 PRIVATE_SGA 66K
10 FAILED_LOGIN_ATTEMPTS 6
11 PASSWORD_LIFE_TIME 60
12 PASSWORD_REUSE_TIME 60
13 PASSWORD_REUSE_MAX 5
14 PASSWORD_LOCK_TIME 1/24
15 PASSWORD_GRACE_TIME 10
16 PASSWORD_VERIFY_FUNCTION verify_function
17 /
CREATE PROFILE sec_profile LIMIT
*
ERROR at line 1:
ORA-07443: function VERIFY_FUNCTION not found
出錯原因:VERIFY_FUNCTION函式不存在,要事先建立該函式,VERIFY_FUNCTION函式是通過utlpwdmg.sql指令碼建立的,該指令碼所在的目錄是$ORACLE_HOME/rdbms/admin/
使用utlpwdmg.sql指令碼建立 VERIFY_FUNCTION 密碼複雜度校驗函式:
[email protected]> @?/rdbms/admin/utlpwdmg.sql
Function created.
Profile altered.
指令碼中,verify_function 函式的密碼複雜性校驗規則如下:
1)密碼最小長度為4個字元
2)密碼不能和使用者名稱相同
3)密碼要包含至少一個字元、一個數字和一個特殊字元
4)密碼需要至少有3個字元與之前的口令不相同
實驗中使用了幾乎所有引數,惟一沒有包含的是IDLE_TIME,它將繼承 DEFALT 中的定義
對上面建立的PROFILE逐行做一下詮釋,以便加深理解:
第 2行:對使用者的併發連線會話數不做限制
第 3行:對於連線到使用者的每一個session的CPU時間的使用不做限制
第 4行:一次呼叫消耗的CPU時間不能超過60秒(不超過一分鐘)
第 5行:連線到使用者的每次會話時間不能超過60分鐘(不超過一個小時)
第 6行:一次會話使用的物理讀與邏輯讀資料塊總量與DEFAULT profile中定義保持一致
第 7行:一次呼叫使用的物理讀與邏輯讀資料塊總量不超過6000個數據塊
第 8行:一次會話總的資源消耗不超過6000000個服務單元(service units)
第 9行:一次會話在SGA中不能分配超過66K的空間
第10行:帳戶被鎖定之前允許6次的錯誤嘗試
第11行:超過此生命週期後密碼作廢
第12行:密碼重用時間60天
第13行:密碼重用之前密碼需要完成5次改變
第14行:超過錯誤嘗試次數後,使用者將被鎖定1小時
第15行:當密碼過期之後原密碼還可以使用10天
第16行:使用密碼複雜度校驗函式verify_function對密碼做檢查
第12行和第13行,兩個策略搭配使用後,只有完成 5 次密碼修改且已超過60天后,之前的密碼才能被再次使用
刪除 PROFILE 很簡單,語法:DROP PROFILE profile [CASCADE];
如果建立的PROFILE已經授權給了具體的使用者,則需用CASCADE選項級聯的收回相應限制,在收回這些限制資訊後將以系統預設的PROFILE對該使用者進行限制。
七、PROFILE 何時生效
PROFILE中有關密碼的限制永遠生效,不受限制。
PROFILE中有關資源的限制與resource_limit引數的設定有關,為TRUE時生效,為FALSE時(預設)無效。
八、將配置檔案分配給使用者:
SQL> alter user dinya profile sec_profile;
SQL> alter user dinya profile default;
SQL> select USERNAME,PROFILE from dba_users where USERNAME = 'dinya';
九、11g oracle 使用者密碼過期問題
11g之前版本,預設使用者沒有密碼過期限制,在Oracle 11g 中預設 profile 密碼過期時間是180天
檢查:select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
過期的密碼可用 alter user userXXX identified by xxx; 解決,可修改為和以前一樣
如果想設定密碼不過期,可用管理員登陸,執行下面命令:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
其他相關引數:
select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD%';
使用者許可權
一、許可權分類:
系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。
實體許可權:某種許可權使用者對其它使用者的表或檢視的存取許可權。(是針對表或檢視而言的)。
二、系統許可權管理:
1、系統許可權分類:
DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。
RESOURCE:擁有Resource許可權的使用者只可以建立實體,不可以建立資料庫結構。
CONNECT:擁有Connect許可權的使用者只可以登入Oracle,不可以建立實體,不可以建立資料庫結構。
對於普通使用者:授予connect, resource許可權。
對於DBA管理使用者:授予connect,resource, dba許可權。
2、系統許可權授權命令:
[系統許可權只能由DBA使用者授出:sys, system(最開始只能是這兩個使用者)]
授權命令:SQL> grant connect, resource, dba to 使用者名稱1 [,使用者名稱2]...;
[普通使用者通過授權可以具有與system相同的使用者許可權,但永遠不能達到與sys使用者相同的許可權,system使用者的許可權也可以被回收。]
例:
SQL> connect system/manager
SQL> Create user user50 identified by user50;
SQL> grant connect, resource to user50;
查詢使用者擁有哪裡許可權:
SQL> select * from dba_role_privs; --where grantee='SYS';
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs; --where role='DBA';
刪除使用者:SQL> drop user 使用者名稱 cascade; //加上cascade則將使用者連同其建立的東西全部刪除
3、系統許可權傳遞:
增加WITH ADMIN OPTION選項,則得到的許可權可以傳遞。
SQL> grant connect, resorce to user50 with admin option; //可以傳遞所獲許可權。
4、系統許可權回收:系統許可權只能由DBA使用者回收
命令:SQL> Revoke connect, resource from user50;
系統許可權無級聯,即A授予B許可權,B授予C許可權,如果A收回B的許可權,C的許可權不受影響;
系統許可權可以跨使用者回收,即A可以直接收回C使用者的許可權。
三、實體許可權管理
1、實體許可權分類:select, update, insert, alter, index, delete, all //all包括所有許可權
execute //執行儲存過程許可權
user01:
SQL> grant select, update, insert on product to user02;
SQL> grant all on product to user02;
user02:
SQL> select * from user01.product;
// 此時user02查user_tables,不包括user01.product這個表,但如果查all_tables則可以查到,因為他可以訪問。
3. 將表的操作許可權授予全體使用者:
SQL> grant all on product to public; // public表示是所有的使用者,這裡的all許可權不包括drop。
[實體許可權資料字典]:
SQL> select owner, table_name from all_tables; // 使用者可以查詢的表
SQL> select table_name from user_tables; // 使用者建立的表
SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 獲權可以存取的表(被授權的)
SQL> select grantee, owner, table_name, privilege from user_tab_privs; // 授出許可權的表(授出的許可權)
4. DBA使用者可以操作全體使用者的任意基表(無需授權,包括刪除):
DBA使用者:
SQL> Create table stud02.product(
id number(10),
name varchar2(20));
SQL> drop table stud02.emp;
SQL> create table stud02.employee
as
select * from scott.emp;
5. 實體許可權傳遞(with grant option):
user01:
SQL> grant select, update on product to user02 with grant option; // user02得到許可權,並可以傳遞。
6. 實體許可權回收:
user01:
SQL>Revoke select, update on product from user02; //傳遞的許可權將全部丟失。
相關推薦
ORACLE 使用者、Profile 及許可權
使用者管理一、建立使用者:建立的新使用者是沒有任何許可權的,甚至連登陸的資料庫的許可權都沒有,需要為其指定相應的許可權。 SQL> Create User username Identified by password Default Tablespace ta
使用Navicat for Oracle新建表空間、使用者及許可權賦予
Navicat for Oracle是有關Oracle資料庫的客戶端工具。通過這個客戶端,我們可以圖形方式對Oracle資料庫進行操作。 說明我們此次試驗的Oracle資料庫版本是Oracle 10G Express Edition,也即是我們平時所說的Oracle
Oracle——使用者、角色和許可權資訊的檢視總結
Oracle在sys使用者方案中內建了許多檢視,我們可以利用它們方便地檢視系統相關的資訊。在呼叫這些檢視的時候我們可以不加schema,以下是一些 關於使用者、角色和許可權資訊的檢視總結: (1)all_users檢視:可以檢視當前使用者可以看到的所有使用者 (2)
Oracle Archivelog、檢視及日誌分析
編寫時間:2015年4月16日星期四 編寫人:蝸牛 QQ 295013648 說明Archivelog,也就是我們通常所說的歸檔,那什麼是歸檔,歸檔是怎麼產生的,其作用又是什麼,歸檔檔案中到底存在什麼樣的內容,這些都是作為資料庫管理員的我們應該知道,並且能夠應用到工作
oracle 建立表空間、新使用者及許可權
給新建立的使用者分配許可權, 如:"GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESO
使用者管理Oracle資料庫的使用者建立、刪除等;使用者、角色許可權的授予與回收等;使用者的資訊查詢及許可權與角色的資訊查詢。
(1)Oracle中建立新的使用者使用create user語句,一般是具有dba(資料庫管理員)的許可權才能使用。如在sql plus中以scott使用者建立使用者的命令如下:Create user xiaoming identified by m123;(注意oracle
oracle em企業管理器的安裝、配置及相關問題
密碼 技術分享 分享 control spa alt .com 企業管理 gre 2017-05-10 一、配置ORACLE_UNQNAME環境變量 二、重建EM資料庫:emca -repos recreate 三、配置EM賬號密碼:DBSNMP、SYSMAN 四、配置EM
Oracle 12c Windows安裝、介紹及簡單使用(圖文)
htm 編程 閱讀 arch 用戶 upgrade plsql windows安裝 條件 1、下載 地址為:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/inde
關於@Profile、@Conditional、@Primary、@Qualifier及@Scope等實現高階裝配的spring註解
1、關於@Profile註解的介紹 @Profile註解主要用在針對不同環境而條件選擇的注入bean 在開發過程中由於環境的不同,我們可能在針對某些功能,需要開發不同的實現,然而在某種環境中,只能啟用其中一種實現,其他的實現處於不啟用的狀態。這個時候我們在需要建立的bean上新增@Profi
[轉載]Oracle使用者建立及許可權設定
出處:https://www.cnblogs.com/buxingzhelyd/p/7865194.html 許可權: create session 允許使用者登入資料庫許可權 create table 允許使用者建立表許可權 unlim
實驗目的: 1、理解使用者與模式的概念,掌握oracle中使用者管理的基本方法 2、理解系統許可權、物件許可權的概念,掌握分配許可權的方法 3、理解角色的概念,掌握角色的應用方法 實驗內容: 一、使用者
撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B
Sap許可權相關設定、控制及傳輸
1、許可權相關概念簡介 一、首先我們先來介紹以下這幅圖(PFCG),這裡麵包含幾個許可權相關的概念。 以上圖為例,我們來簡單的介紹上圖中的幾個概念: 1、Role:一堆TCODE的集合,當然還包含有TCODE必備的“許可權物件”、“許可權欄位”、“欄
1、shell 重定向、使用者及組、許可權管理
1、重定向操作 1.1、< 將命令中接收輸入的途徑由預設的鍵盤更改為指定的檔案 1.2、 > 將命令的結果覆蓋地寫入檔案中,而不在螢幕上顯示 1.3、 >> 將命令的結果追加到指定檔案 1.4、 2> 將錯誤資訊覆蓋地寫入指定檔案中 1.5、 2>&
oracle序列的增、刪、改、查及使用
----------------------------------------------------------------------建立序列:示例:CREATE SEQUENCE SEQ_SSSS #建立序列名為SEQ_SSSS的序列INCREMENT BY 1 #增值值為1(負數表示遞減,如-1)S
Linux基礎02:磁碟操作,檔案許可權、檔案及資料夾操作、網路服務
1.Linux磁碟與U盤操作 1.1 顯示系統的磁碟空間用量 ##du命令也是檢視使用空間的,但是與df命令不同的是Linux du命令是對檔案和目錄磁碟使用的空間的檢視 du -sh ##查目錄使用大小(-s表示總結) ## du -sh /bin ##df命令用於顯示磁碟分割槽
特殊許可權set_uid、set_gid及stick_bit(使用不多,瞭解)
set_uid存放密碼的檔案:/etc/shadow ![](http://i2.51cto.com/images/blog/201812/04/c0dc4eaedcabd4206fca25bdce8c729f.png?x-oss-process=image/watermark,si
oracle使用者建立、授權和許可權設定(關於Oracle許可權2)
許可權: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> conn / as sysdba; SQL>
第七單元 使用者、群組及許可權的深入討論
怎樣檢視檔案的許可權 ls命令詳解 root使用者及檔案的安全控制 什麼是root使用者 使用者分類 檔案操作許可權 檔案操作許可權的字元表示 chown chgrp 使用符號表示法設定檔案或目錄上的許可權 chmod命令的功能 chmod命令的-R選項 什麼是符號表示法 許可權狀態的3個部分
Oracle給使用者賦予dba許可權並且賦予建立檢視、查詢表的許可權
1、賦予dba的許可權 grant dba to user; 2、在建立使用者的時候如果直接給使用者DBA許可權,那麼在B使用者中可以直接查詢A使用者的表,但是在建立檢視時就會報無許可權, 在這種情況下需要再在被訪問的A使用者裡面去給予要訪問該表的B使用者授權。 解決
分享知識-快樂自己:註冊使用者密碼加密、登入驗證及許可權驗證
***********************以下內容僅作為參考使用:********************************* 1、使用者註冊時,將使用者設定的密碼加密後存入資料庫中(顯然密碼不能簡單地用md5加密一次或者乾脆不加密,這些都是會暴露使用者隱私的,甚至是觸動使用者的利益): 加密密