Oracle11g 使用者與許可權管理
---使用者與許可權管理----
--1,使用者--
Create User 使用者名稱 Identified By "口令"
Default Tablespace 表空間
---指定預設表空間,若不指定,則SYSTEM表空間將被指定為使用者的預設表空間,為了提高資料庫的效能,同時為了方便管理資料,Oracle建議為使用者指定一個預設表空間---
Temporary Tablespace 臨時表空間
Quota 空間配額大小 On 表空間
Password Expire
Account Lock|Unlock
--刪除使用者--
Drop User 使用者名稱
--需要注意的是,如果一個使用者的模式中已經包含一些資料庫物件,那麼這個使用者不能直接刪除,必須指定cascade--
Drop User scott Cascade;
--使用者的相關資訊從資料字典檢視dba_users中獲得--
--修改使用者口令--
Password 使用者名稱 --若沒有指定使用者名稱,則預設為當前使用者--
Alter User 使用者 Identified By "新口令"
--alter也可以修改其它資訊--
--系統許可權的管理--
--為使用者授予許可權的grant命令語法--
Grant 許可權1,許可權2,... To 使用者1,使用者2,... With Admin Option; --with admin option的好處是許可權的獲得者可以再將許可權授予其他使用者--
---許可權包括系統許可權和物件許可權--
--系統許可權--
Create Session,Create Table,Create Resource,Create View,Create User,Create Trigger,Create Tablespace,Create procedure.
Alter Session,Database,User
--為了使一個使用者可以運算元據庫,至少需要有create session,create table和有指定(表)空間配額的3個許可權--
Grant Create Session,Create Table,Unlimited Tablespace To 使用者名稱;
--回收許可權--
--注意:系統許可權可以轉授,但是回收時不能間接回收--
Revoke 系統許可權1,系統許可權2 ...
From 使用者1,使用者2 ...
--物件許可權 主要是對資料庫物件中的資料的訪問許可權,這類許可權主要針對普通使用者--
Grant 物件許可權1(列名),物件許可權2(列名)...
On 物件 To 使用者1,使用者2... With Grant Option
--回收許可權--
--許可權insert,update,references在分配時可以指定相關的列,但在回收時不能指定列,而只能指定表名--
Revoke 物件許可權1,物件許可權2... On 物件
From 使用者1,使用者2...
--資料庫中所有的系統許可權--
--sys從資料字典檢視dba_sys_privs中查詢任何使用者所具有的系統許可權--
----普通使用者透過user_sys_privs查詢 使用者直接獲得的系統許可權,即透過grant命令授予當前使用者的系統許可權---
Select username,Privilege,admin_option From user_sys_privs
--從資料字典檢視session_privs中可以查詢一個使用者在當前會話中所具有的系統許可權--
-- session_privs許可權==直接獲得的許可權 + 該使用者從角色中間接獲得的系統許可權 ---
--物件許可權有關的資料字典檢視:dba_tab_privs,dba_col_privs,user_tab_privs和user_col_privs--
--角色--
--connect角色 包含的許可權有create Session --
/* resource角色 包含的許可權有 crate sequence,create trigger,create cluster,create procedure,
create type,create operator,create table ,create indextype */
Create Role 角色名
Drop Role 角色名
Grant Select On emp To role1
Revoke Select On emp From role1
--角色資訊的查詢--
/* dba_roles 記錄資料庫中所有角色
dba_role_privs 記錄所有被授予使用者或另一角色的角色
user_role_privs 記錄所有被授予當前使用者的角色
role_role_privs 記錄一個角色中包含的其他角色
role_sys_privs 記錄一個角色中包含的系統許可權
role_tab_privs 記錄一個角色中包含的物件許可權
session_roles 記錄當前會話中所使用的角色 */
--獲得系統中所有的角色--
--查詢使用者user1所擁有的角色和預設角色--
--查詢角色connect所包含的系統許可權--
--profile的管理--
--profile建立--
Create Profile profile名稱 Limit
口令限制
資源限制
--指定profile 每個使用者只能指定一個profile--
--從資料字典dba_users中可以獲得為每個使用者指定的profile-
--Profile限制--
/* Failed_Login_Attempts 允許的失敗登入次數,預設值為10次
Password_Lock_Time 賬號鎖定時間,預設值為1天
Password_Life_Time 口令的有效期,預設值為180天
Password_Grace_Time 口令有效期的延長期,預設值為-周、7天
Password_Reuse_Time 為了再次使用過去用過的口令,必須經過的天數
Password_Reuse_Max 為了再次使用過去用過的口令,必須使用不同口令的次數
Password_Reuse_Time 和 Password_Reuse_Max 必須一起使用 */
--如果使用者失敗的登入次數達到3次,則使用者賬號將被鎖定5天--
--使用者在30天內必須把口令修改過5次後,才能使用過去用過的口令--
--利用profile對使用者使用資源進行控制--
如果要使profile對使用者使用系統資源起限制作用,則需要將引數Resource_limit的值設定為True
Sessions_Per_User 一個使用者所允許的併發會話數目
Cpu_Per_Session 使用者在一個會話內所使用的Cpu時間的總和,時間單位為0.01秒
Logical_Reads_Per_Session 使用者在一個會話內所能訪問的資料塊的數量(包括物理讀和邏輯讀的數量)
Connect_Time 一個使用者會話所能持續的時間,以分鐘為單位;超過這個時間,會話將自動斷開
Idle_Time 一個使用者會話所允許的連續的空閒時間,以分鐘為單位,超過這個時間,會話將自動斷開
Private_Sga 如果資料庫伺服器的連線模式為共享模式,這個引數用來限制為一個使用者會話所分配的Sga空間
Cpu_Per_Call 使用者執行的每條命令所使用的Cpu時間,時間單位為0.01秒
Logical_Reads_Per_Call 使用者執行的每條命令所能訪問的資料塊的數量
如果能夠對使用者消耗Cpu時間、訪問資料塊的數量等這些資源進行限制,那麼就可以有效地
防止諸如死迴圈的執行、訪問一個大表中的所有資料這類情況的發生。
/* 若沒有為使用者指定profile檔案,則使用者會受預設profile限制,如果要對所有使用者進行同樣的限制,那麼只要修改
這個預設profile所包含的限制,並且不要為使用者指定其他的profile */
--1,使用者--
Create User 使用者名稱 Identified By "口令"
Default Tablespace 表空間
---指定預設表空間,若不指定,則SYSTEM表空間將被指定為使用者的預設表空間,為了提高資料庫的效能,同時為了方便管理資料,Oracle建議為使用者指定一個預設表空間---
Temporary Tablespace 臨時表空間
Quota 空間配額大小 On 表空間
Password Expire
Account Lock|Unlock
點選(此處)摺疊或開啟
-
Create User user1 Identified By "1234"
-
Default Tablespace Users
-
Temporary Tablespace temp
-
Quota 20M On Users ---若希望使用者在所有表空間上都具有無限制的空間配額,則只要為其指定Unlimited tablespaces系統許可權即可---
-
Password Expire
- Account Unlock;
Drop User 使用者名稱
--需要注意的是,如果一個使用者的模式中已經包含一些資料庫物件,那麼這個使用者不能直接刪除,必須指定cascade--
Drop User scott Cascade;
--使用者的相關資訊從資料字典檢視dba_users中獲得--
- Select username,Password,default_tablespace,account_status From dba_users;
Password 使用者名稱 --若沒有指定使用者名稱,則預設為當前使用者--
Alter User 使用者 Identified By "新口令"
--alter也可以修改其它資訊--
-
Alter User user1
-
Default Tablespace ts1
-
Temporary Tablespace ts1
- Quota Unlimited On ts1;
--為使用者授予許可權的grant命令語法--
Grant 許可權1,許可權2,... To 使用者1,使用者2,... With Admin Option; --with admin option的好處是許可權的獲得者可以再將許可權授予其他使用者--
---許可權包括系統許可權和物件許可權--
--系統許可權--
Create Session,Create Table,Create Resource,Create View,Create User,Create Trigger,Create Tablespace,Create procedure.
Alter Session,Database,User
--為了使一個使用者可以運算元據庫,至少需要有create session,create table和有指定(表)空間配額的3個許可權--
Grant Create Session,Create Table,Unlimited Tablespace To 使用者名稱;
--回收許可權--
--注意:系統許可權可以轉授,但是回收時不能間接回收--
Revoke 系統許可權1,系統許可權2 ...
From 使用者1,使用者2 ...
--物件許可權 主要是對資料庫物件中的資料的訪問許可權,這類許可權主要針對普通使用者--
Grant 物件許可權1(列名),物件許可權2(列名)...
On 物件 To 使用者1,使用者2... With Grant Option
-
Grant Select On dept To user1 With Grant Option
-
Grant Insert(empno),Update(sal) On emp To user1,user2
- Grant Execute On functional To user1
--許可權insert,update,references在分配時可以指定相關的列,但在回收時不能指定列,而只能指定表名--
Revoke 物件許可權1,物件許可權2... On 物件
From 使用者1,使用者2...
-
Revoke Update(sal) On emp From user2 --錯誤語句--
- Revoke Update On emp From user2
- Select Name From system_privilege_map;
- Select grantee,Privilege,admin_option From dba_sys_privs Where grantee='SCOTT'
Select username,Privilege,admin_option From user_sys_privs
--從資料字典檢視session_privs中可以查詢一個使用者在當前會話中所具有的系統許可權--
-- session_privs許可權==直接獲得的許可權 + 該使用者從角色中間接獲得的系統許可權 ---
--物件許可權有關的資料字典檢視:dba_tab_privs,dba_col_privs,user_tab_privs和user_col_privs--
點選(此處)摺疊或開啟
-
-- dba_tab_privs 查詢任何使用者所具有的物件許可權 ---
-
Select grantee,Privilege,grantor,table_name,grantable From dba_tab_privs
-
Where grantee='USER1';
-
--dba_col_privs 查詢使用者在列上的許可權 --
-
Select grantee,table_name,column_name,Privilege,grantor,grantable
- From dba_col_privs Where grantee='USER1';
-
Select grantee,table_name,column_name,Privilege,grantor,grantable
- From user_tab_privs Where grantee='SCOTT';
--connect角色 包含的許可權有create Session --
/* resource角色 包含的許可權有 crate sequence,create trigger,create cluster,create procedure,
create type,create operator,create table ,create indextype */
Create Role 角色名
Drop Role 角色名
Grant Select On emp To role1
Revoke Select On emp From role1
--角色資訊的查詢--
/* dba_roles 記錄資料庫中所有角色
dba_role_privs 記錄所有被授予使用者或另一角色的角色
user_role_privs 記錄所有被授予當前使用者的角色
role_role_privs 記錄一個角色中包含的其他角色
role_sys_privs 記錄一個角色中包含的系統許可權
role_tab_privs 記錄一個角色中包含的物件許可權
session_roles 記錄當前會話中所使用的角色 */
--獲得系統中所有的角色--
- Select Role From dba_roles
- Select granted_role,default_role From dba_role_privs Where grantee='user1'
- Select Privilege,admin_option From role_sys_privs Where Role='CONNECT'
-
--查詢使用者的會話資訊,強制終止使用者會話,鎖定使用者帳號--
-
Select username,Sid,serial# From v$session Where username='SCOTT';
-
Alter System Kill Session '144,7'; --144和7分別為使用者會話的sid和serial#--
- Alter User scott Account Lock;
Create Profile profile名稱 Limit
口令限制
資源限制
--指定profile 每個使用者只能指定一個profile--
-
Create User user2 Identified By "1234" Profile p1
- Alter User scott Profile p1
-
Select Profile From dba_users Where username='SCOTT';
-
--資料字典dba_profiles--
-
Select resource_name,Limit From dba_profiles Where Profile='P1';
-
--刪除profile--
- Drop Profile profile名字 [Cascade];
/* Failed_Login_Attempts 允許的失敗登入次數,預設值為10次
Password_Lock_Time 賬號鎖定時間,預設值為1天
Password_Life_Time 口令的有效期,預設值為180天
Password_Grace_Time 口令有效期的延長期,預設值為-周、7天
Password_Reuse_Time 為了再次使用過去用過的口令,必須經過的天數
Password_Reuse_Max 為了再次使用過去用過的口令,必須使用不同口令的次數
Password_Reuse_Time 和 Password_Reuse_Max 必須一起使用 */
--如果使用者失敗的登入次數達到3次,則使用者賬號將被鎖定5天--
- Create Profile p1 Limit Failed_Login_Attempts 3 Password_Lock_Time 5
- Create Profile p2 Limit Password_Reuse_Time 30 Password_Reuse_Max 5
如果要使profile對使用者使用系統資源起限制作用,則需要將引數Resource_limit的值設定為True
- Alter System Set resource_limit=True
Cpu_Per_Session 使用者在一個會話內所使用的Cpu時間的總和,時間單位為0.01秒
Logical_Reads_Per_Session 使用者在一個會話內所能訪問的資料塊的數量(包括物理讀和邏輯讀的數量)
Connect_Time 一個使用者會話所能持續的時間,以分鐘為單位;超過這個時間,會話將自動斷開
Idle_Time 一個使用者會話所允許的連續的空閒時間,以分鐘為單位,超過這個時間,會話將自動斷開
Private_Sga 如果資料庫伺服器的連線模式為共享模式,這個引數用來限制為一個使用者會話所分配的Sga空間
Cpu_Per_Call 使用者執行的每條命令所使用的Cpu時間,時間單位為0.01秒
Logical_Reads_Per_Call 使用者執行的每條命令所能訪問的資料塊的數量
如果能夠對使用者消耗Cpu時間、訪問資料塊的數量等這些資源進行限制,那麼就可以有效地
防止諸如死迴圈的執行、訪問一個大表中的所有資料這類情況的發生。
-
Create Profile p3 Limit
-
Sessions_Per_User 100
-
Logical_Reads_Per_Session 500
- Connect_Time 5
-
Create Profile p4 Limit
-
Cpu_Per_Call 10
- Logical_Reads_Per_Call 50
這個預設profile所包含的限制,並且不要為使用者指定其他的profile */
- Select resource_name,Limit From dba_profiles Where Profile='DEFAULT';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-1805933/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB 使用者與許可權管理MongoDB
- 使用者許可權管理之使用者與組管理
- mysql使用者許可權管理MySql
- Linux使用者與許可權Linux
- Linux使用者、組、許可權管理Linux
- MySQL使用者及許可權管理MySql
- Oracle使用者角色許可權管理Oracle
- MySQL 使用者及許可權管理?MySql
- SpringBoot與Shiro整合-許可權管理Spring Boot
- Linux賬戶與許可權管理Linux
- 使用者角色許可權管理架構架構
- OpenShift 使用者許可權管理例項
- MySQL-03.使用者管理和許可權管理MySql
- 前端如何進行使用者許可權管理前端
- mysql 使用者及許可權管理 小結MySql
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- Odoo許可權管理Odoo
- 特殊許可權管理
- sql許可權管理SQL
- 許可權管理策略
- MySQL許可權管理MySql
- 4、許可權管理
- RBAC許可權管理
- PostgreSQL:許可權管理SQL
- 入門MySQL——使用者與許可權MySql
- MySQL入門--使用者與許可權MySql
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- nodejs的使用者許可權管理——acl.mdNodeJS
- linux使用者許可權Linux
- casbin-許可權管理
- Security 10:許可權管理
- 乾貨分享 GBase 8s使用者與許可權管理揭祕
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- Unix Linux檔案型別與許可權管理Linux型別
- spring2 Aop與事務、許可權管理Spring
- DRF內建許可權元件之自定義許可權管理類元件
- 賬號和許可權管理
- 1.6.1. 管理員許可權
- Linux 中的許可權管理Linux