再分享一下Oracle中對用戶的管理,以下這些東西是我的麥庫上存的當時學Oracle的學習筆記今天拿出來和大家分享一下,轉載請注明出處,下面用的Oracle的版本是10g,用的時WinServer2003的操作系統,可能有些命令和Oracle11g的有所不同,但大部分是一樣的,接下來還會陸續的分享一下Oracle中對數據庫的管理,對表的管理,還有Oracle中的存儲過程和PL/SQL編程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,歡迎大家批評指正。
1.用戶的創建
在Oracle數據庫創建數據庫用create user語句來實現,一般是具有dba的權限才能實現。
demo:
sql> create user UserName identified by UserPassWord; sql>用戶已創建。(在創建用戶時用戶密碼必須以字母開頭,否則無法創建用戶)
2.修改密碼
給用戶修改密碼:
如果給自己修改密碼可以用
1 sql>password 即可;
給別人修改密碼必須有數據庫dba權限或者系統的alter user權限
1 sql> alter user 用戶名 identified by 新密碼;
3.刪除用戶:
需要有數據庫dba權限或者drop user 權限
1 demo: sql> drop user 用戶名 【cascade】 cascade在刪除用戶的同時把用戶所創建的表也一並刪除;
4.賦權限
創建的用戶是沒有任何權限的,需要給他賦予一些操作數據庫的一一些權限給用戶賦權限用關鍵字grant, 回收用戶的權限用revoke
給用戶賦予連接數據庫的權限:
sql>grant connect to 用戶名;
系統權限的傳遞性設置:
sql>grant connect to 用戶名 with admin option;
oracle數據庫中的權限包括系統權限和對象權限
系統權限:用戶對數據庫的相關權限;如:創建數據庫,刪除數據庫,創建和刪除用戶;
對象權限:用戶對其數據對象的操作權限,數據對象如表,視圖,函數,過程等:
5.oracle 中的角色:
角色的概念:角色是多種權限的組合包括 預定義角色和自定義角色,如connect權限,dba權限,resource權限等;
connect權限是賦予用戶連接數據庫的權限,dab權限是數據庫的最高權限,resource 權限是賦予用戶使用數據庫存儲資源的權限即創建和操作表的權限;
對象的權限:select, insert, update, delete, all(包含上述的四個), create index ……常用的是對表的操作賦予用戶對象權限的語法如下:
1 grant 權限 on 表名 to 用戶名; demo: grant select on emp to ludashi;
把scott下的表的select對象權限賦予li;
sql>grant select on emp to li; sql>conn li/li; sql>select * from scott.emp; --查詢scott下的emp表,必須為scott.emp才可以查詢成功。這涉及到“方案”的概念。
如果是dba用戶,把用戶scott的下的emp表的select對象權限賦給li用戶:
sql>grant select on scott.emp to li;(方案名.表名);
設置用戶權限的可傳遞性:
sql>grant select on emp to li with grant option; --li用戶可以把別人賦給他的權限在賦給其他人;
6.回收用戶權限:
revoke 權限 on 表名 from 用戶名;
scott用戶撤回他賦給li用戶的select權限:
1 revoke select on emp from li;
sys用戶撤回scott用戶把自己的emp表的select權限賦給li;
revoke select on scott.emp from li;
desc命令: desc 表名;顯示表結構;
7.Oracle權限的回收傳遞問題:
系統角色的回收問題(如connect,resources等):
sys用戶:--把連接數據庫的角色賦給test1,並設置為可傳遞性;
sql>grant connect to test1 with admin option;
test1用戶:--test1把連接數據庫的權限傳遞給test2
sql>grant connect to test2;
test1和test2都可以連接數據庫,即test1把連接數據庫的權限傳遞給了test2;
sys用戶:--sys用戶回收test1連接數據庫的權限
sql>revoke connect from test1;
把test1用戶的權限回收後test1,無法連接數據庫。
可對於系統角色來說回收test1角色的同時,傳遞給test2的角色仍然存在;
8.權限的回收問題:
sys用戶:--sys用戶把方案scott下的emp表的select權限賦給test1,並設置為可傳遞性;
sql>grant select on scott.emp to test1 with grant option;
test1用戶:把對emp表的select的權限賦給test2;
sql>grant select on scott.emp to test2;
sys用戶:--回收test1的select的權限
sql>revoke select on scott.emp from test1;
在回收test1的select權限的同時也把test2的權限回收了;
9.profile用戶權限管理:
Oracle設定用戶登錄次數,登錄失敗幾次後自動locked用戶;
sys>用戶:create profile創建配置文件;設定密碼錯誤三次後密碼被鎖兩天的配置文件, 名字為fileName; sql> create profile fileName limit failed_login_attempts 3 password_lock_time 2; sql>alter user userName profile fileName;
用戶解鎖:
sql> alter user userName account unlock;
Oracle 設定用戶密碼的過期時間,即密碼的有效期;
sys用戶:創建配置文件fileName 設置密碼的過期時間是10天,寬限日是兩天;
sql> create profile fileName limit password_life_time 10 password_grace_time 2;
oracle DBA 和oracle有什麼區別
- oracle,相當於重新登陸,此時用戶的家目錄和PATH等信息會發生改變
su oracle,切換到oracle身份後用戶的家目錄和PATH仍然是原先用戶的家目錄和PATH
這個是ORACLE 的特有用戶,是超級管理員權限,建成DBA 它具有管理數據庫的最高權限;