程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> OracleDBA之用戶管理,oracledba用戶管理

OracleDBA之用戶管理,oracledba用戶管理

編輯:Oracle教程

OracleDBA之用戶管理,oracledba用戶管理


  再分享一下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 DBA 和oracle有什麼區別
- oracle,相當於重新登陸,此時用戶的家目錄和PATH等信息會發生改變
su oracle,切換到oracle身份後用戶的家目錄和PATH仍然是原先用戶的家目錄和PATH
 

Oracle問題:我的“電腦右鍵--->管理-->本地用戶與組-->組”裡面有ora_dba組有什用?

這個是ORACLE 的特有用戶,是超級管理員權限,建成DBA 它具有管理數據庫的最高權限;
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved