oracle用戶管理linux
建立用戶(簡單版)sql
概述:在oracle中要建立一個新的用戶使用create user語句,通常是具備dab(數據庫管理員)的權限才能使用。數據庫
基本語法:create user 用戶名 identified by 密碼;windows
注意:oracle規定用戶密碼不能以數字開頭session
給用戶修改密碼oracle
概述:若是給本身修改密碼能夠直接使用sql>password 用戶名ide
若是給別人修改密碼則須要具備dba的權限,或是擁有alter user的系統權限,也可使用password用戶名spa
sql>password 用戶名;命令行
sql>alter user 用戶名 identified by 新密碼;對象
特別說明:oracle已對oracle操做中出現的錯誤進行了編號,之後遇到錯誤將記錄編號進行網上查詢解決方案。
oracle用戶管理
建立用戶(細節)
例子:
sql>create user dd identified by dd
default tablespace users
temporary tablespace temp
quota 3m on users;
identified by代表用戶shunping將用數據庫方式驗證default tablespace users//用戶的表空間在users上
temporary tablespace temp//用戶shunping的臨時表建在temp空間
quota 3m on users//代表用戶shunping創建的數據對象(表、索引、視圖、pl/sql塊)最大隻能是3m
剛剛建立的用戶是沒有任何權限的,所以,須要dba給該用戶受權。
sql>grant connect to shunping
若是你但願該用戶建表沒有空間的限制
sql>grant resource to shunping
若是你但願該用戶成爲dba
sql>grant dba to shunping
表空間(oracle獨有的概念)
什麼是表空間?表存在的空間,一個表空間是指向具體的數據文件。
爲何建立好的用戶沒法正常登陸?
oracle中用戶創建後是沒法正常登陸的,只有在數據庫管理員(DBA)對用戶分配相應的權限後,用戶才能夠登陸。
如何給用戶分配權限?
基本語法:grant create 權限 to 用戶名;
案例:sql>grant create session to xiaoming;
也能夠按角色對用戶分配權限
基本語法:grant 角色名 to 用戶名;
案例:sql>grant dba to xiaoming;
oracle管理用戶的機制(原理)
oracle中權限的概念
權限分爲系統權限與對象權限。
系統權限是數據庫管理相關的權限:
create session(登陸權限)
create table(建立表權限)
create index(建立索引權限)
create view(建立視圖權限)
create sequence(建立序列權限)
create trriger(建立觸發器權限)
......
對象權限是和用戶操做數據對象相關的權限。
update改
insert增
delete刪
select查
角色分爲預約義角色和自定義角色
預約義角色:把經常使用的權限集中起來,造成角色。
常見的角色有:DBA、connect、resource
自定義角色按需定製必定權限造成角色,能夠做爲預約義角色的補充。來知足用戶的需求。
oracle用戶管理
用戶管理的綜合案例
概述:建立的新用戶是沒有任何權限的,甚至連登陸的數據庫的權限都沒有,須要爲其指定相應的權限。給一個用戶賦權限使用使令grant,回收權限使用命令revoke
賦權限基本語法:grant 權限/角色 to 用戶名;
回收權限基本語法:revoke 權限/角色 from 用戶名;
oracle用戶管理
刪除用戶
概述:通常以dba的身份去刪除某個用戶,若是用其它用戶去刪除用戶則須要具備drop user的權限
基本語法:drop user 用戶名 [cascade];
爲了講清楚用戶的管理,這裏舉例說明:
一、建立xiaoming,並賦予connect和resource
建立用戶基本語法:create user 用戶名 identified by 密碼;
sql>create user xiaoming identified by m123;
給用戶受權基本語法:grant 權限/角色 to 用戶名;
sql>grant connect to xiaoming;
sql>grant resource to xiaoming;
二、切換用戶
切換用戶基本語法:connect 用戶名/密碼;
sql>conn xiaoming/m123;
三、xiaoming修改密碼
修改密碼基本語法:password 用戶名;
sql>password xiaoming;
管理員修改密碼基本語法:alter user 用戶名 identified by 新密碼;
sql>alter user xiaoming identified by xiaoming123;(sys或system用戶修改其它用戶的方法)
四、使用xiaoming建表
建表基本語法:create table 表名(字段屬性);
sql>create table users(id number);
五、添加數據
添加數據基本語法:insert into 表名 values(值);
sql>insert into users values(1);
六、查詢數據
查詢表內容基本語法:select * from 表名;
sql>select * from users;
七、刪除表
刪除表基本語法:drop table 表名;
sql>drop table users;
八、回收權限(需sys或system用戶)
回收權限基本語法:revoke 權限/角色名 from 用戶名;
sql>revoke connect from xiaoming;
sql>revoke resource from xiaoming;
九、刪除用戶
刪除用戶基本語法:drop user 用戶名 [cascade];
當咱們刪除一個用戶的時候,若是這個用戶本身已經建立過數據對象,那麼咱們在刪除該用戶時,須要加[cascade],表示把這個用戶刪除的同時,把該用戶建立的數據對象一併刪除。
sql>drop user xiaoming;
方案(schema)
理解:當一個用戶,建立好之後,若是該用戶建立了任意一個數據對象,此時,咱們的dbms就會建立一個對應的方案與該用戶對應。方案名與用戶名徹底同樣。
小技巧:若是但願看到某個用戶的方案究竟有什麼數據對象,咱們可使用pl/sql developer
方案這個概念的實際應用:
要求:請完成一個功能,讓xiaohong用戶能夠去查詢scott的emp表
步驟:
一、先用scott登陸
sql>conn scott/tiger;
二、賦權限給xiaohong
給某用戶添加表[增刪改查]權限基本語法:grant [select|update|delete|insert|all] on 表名 to 用戶名;
sql>grant select on emp to xiaohong;
三、xiaohong查詢scott的emp
用戶查詢受權表的基本語法:select * from [方案名].表名;
注意:方案名不帶的話,默認是查詢本身方案中的表。
sql>select * from scott.emp;
練習題:
用戶建立練習:
一、建立用戶tea,stu,並給這兩個用戶resource,connect角色
sql>conn system/orcl;//使用system用戶建立tea和stu用戶
sql>create user tea identified by tea;//建立tea用戶
sql>create user stu identified by stu;//建立stu用戶
sql>grant resource to tea;//對tea用戶受權resource權限
sql>grant connect to tea;//對tea用戶受權connect權限
sql>grant resource to stu;//對stu用戶受權resource權限
sql>grant connect to stu;//對stu用戶受權connect權限
二、使用scott用戶把對emp表的select權限給tea
sql>conn scott/tiger;//切換scott用戶操做
sql>grant select on emp to tea;//將scott的emp查詢權限交給tea
使用tea查詢scott的emp表
sql>conn tea/tea;
sql>select * from scott.emp;//查詢scott的emp表
使用scott用戶把emp表的全部權限賦給tea
sql>conn scott/tiger;
sql>grant all on emp to tea;//將scott的emp操做的所有權限交給了tea
使用tea更新/刪除/插入scott的emp表
sql>conn tea/tea;
sql>update scott.emp set job='Teacher' where job='&job';
sql>delete from scott.emp where job='&job';
sql>insert into scott.emp values(8888,'FORD','Teacher',7698,'08-9月-81',1500,300,20);
使用scott收回權限
sql>conn scott/tiger;
sql>revoke all on emp from tea;
三、想辦法將讓tea把本身擁有的對scott.emp的權限轉給stu;
sql>conn scott/tiger;
sql>grant all on emp to tea with grant option;
//with grant option表示獲得權限的用戶,能夠把權限繼續分配
//with admin option若是是系統權限,則帶with admin option
sql>conn tea/tea;
sql>grant all on scott.emp to stu;
使用stu查詢scott用戶的emp表
sql>conn stu/stu;
sql>select * from scott.emp;
使用tea收回給stu的權限
sql>conn tea/tea;
sql>revoke all on scott.emp from stu;
系統權限with admin option
對象權限with grant option
oralce用戶管理
使用profile管理用戶口令
概述:profile是口令限制,資源限制的命令集合,當創建數據時,oracle會自動創建名稱爲default的profile,當創建用戶沒有指定profile選項,那oracle就會將default分配給用戶。
一、賬戶鎖定
概述:指定該賬戶(用戶)登陸時最多能夠輸入密碼的次數,也能夠指定用戶鎖定的時間(天)通常用dba的身份去執行該命令
例:指定scott這個用戶最多隻能嘗試3次登陸,鎖定時間爲2天,讓咱們看看怎麼實現?
建立profile文件
建立profile文件設定嘗試密碼輸入幾回在錯誤後鎖定幾天基本語法:
create profile profile文件名 limit failed_login_attempts 嘗試輸入次數 password_lock_time 鎖定幾天;
alter user 用戶名 profile profile文件名;
sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
sql>alter user tea profile lock_account;
二、給賬戶(用戶)解鎖
解鎖基本語法:alter user 用戶名 account unlock;
sql>alter user tea account unlock;
三、終止口令
爲了讓用戶按期修改密碼可使用終止口令的指令來完成,一樣這個命令也須要dba身份來操做。
例如:給前面建立的用戶tea建立一個profile文件,要求該用戶每隔10天要修改本身的登陸密碼,寬限期爲2天。
建立profile文件設置每隔幾天要對用戶的密碼進行修改,更改密碼時間在幾天內基本語法:create profile profile文件名 limit password_life_time 幾天後修改密碼 password_grace_time 寬限期幾天;
alter user 用戶名 profile profile文件名;
sql>create profile myprofile limit password_life_time 10 password_grace_time 2;
sql>alter user tea profile myprofile;
四、口令歷史
概述:若是但願用戶在修改密碼時,不能使用之前使用過的密碼,可以使用口令歷史,這樣oracle就會將口令修改的信息存放在數據字典中,這樣當用戶修改密碼時,oralce就會對新舊密碼進行比較,當發現新舊密碼同樣時,就提示用戶從新輸入密碼。
例:
一、創建profile
sql>create profile profile名稱 limit password_life_time 10 password_grace_time 2 password_reuse_time 10
password_reuse_time 2// //限制口令在多少天內不能重複使用(換言之就是多少天內不容許使用之前使用過的密碼)
二、分配給某個用戶
sql>alter user 用戶名 profile profile名稱;
五、刪除profile
概述:當不須要某個profile文件時,能夠刪除文件
刪除profile基本語法:drop profile profile文件名 [cascade];
sql>drop profile profile文件名;
注意:profile文件被刪除後,原profile文件指定的用戶將再也不受原profile文件規則限定。當profile文件指定了用戶,要加上 cascade.
oracle數據庫的啓動/關閉流程
oracle也能夠經過命令行的方式啓動,具體如何操做:
oracle啓動流程--windows下
一、lsnrctl start(啓動監聽)
二、oradim -startup -sid 數據庫實例名
oracle關閉流程--windows下
一、lsnrctl stop
二、oradim -shutdown -sid 數據庫實例名 -shuttype srvc,inst
oracle啓動流程--linux下
一、lsnrctl start(啓動監聽)
二、sqlplus sys/change_on_install as sysdba(以sysdba身份登陸,在oracle10g後能夠這樣寫)
sqlplus /nolog
conn sys/change_on_install as sysdba
三、startup
oracle關閉流程--linux下
sqlplus/nolog
conn sys/change_on_install as sysdba
shutdown
注:shutdown關閉,等待每一個用戶退出系統或被取消後退出關閉數據庫。
shutdown transactional:事務性關閉,等待每一個用戶提交或回退當前的事務,而後oracle取消對話,在全部用戶退出系統後執行關閉。
shutdown immediate:直接關閉,取消全部用戶對話(促使回退),執行正常的關閉程序。