oracle 超級用戶密碼遺失、scott賬戶激活解決方案彙總

oracle忘記sys/system/scott用戶的密碼怎麼辦

一、忘記除SYS、SYSTEM用戶之外的用戶的登錄密碼。

     用SYS (或SYSTEM)用戶登錄: CONN SYS/PASS_WORD AS SYSDBA;

     使用如下語句修改用戶的密碼: ALTER USER user_name IDENTIFIED BY newpass;

     注意:密碼不能全是數字。並且不能是數字開頭。否則會出現:ORA-00988: 口令缺失或無效

二、忘記SYS用戶,或者是SYSTEM用戶的密碼。

    如果是忘記SYSTEM用戶的密碼,可以用SYS用戶登錄。然後用ALTER USER 密令修改密碼:

    CONN SYS/PASS_WORD AS SYSDBA ;

    ALTER USER SYSTEM IDENTIFIED BY newpass;

   

    如果是忘記SYS用戶的密碼,可以用SYSTEM用戶登錄。然後用ALTER USER 密令修改密碼。

    CONN SYSTEM/PASS_WORD ;

    ALTER USER SYSTEM IDENTIFIED BY newpass;

   

三、如果SYS,SYSTEM用戶的密碼都忘記或是丟失。

    這一項尤其重要。

    可以使用ORAPWD.EXE 工具修改密碼。

    開始菜單->運行->輸入‘CMD’,打開命令提示符窗口,輸入如下命令:  

    orapwd file=D:\oracle\product\10.2.0\db_1\database\pwdctcsys.ora  password=newpass

 

    這個命令重新生成了數據庫的密碼文件。密碼文件的位置在ORACLE_HOME目錄下的\database目錄下。

    這個密碼是修改sys用戶的密碼。除sys和system其他用戶的密碼不會改變。

 

 

 

 

oracle 角色創建與權限賦予

一 創建用戶
 create user user1 identified by user1;
 改變一個口令
 1.alter user user01 identified by usr01;
 2.password 命令
 二 刪除用戶
 drop user user01;
 如果用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字CASCADE,可刪除用戶所有的對象,然後再刪除用戶。下面的例子用來刪除用戶與其對象:
 drop user user01 CASCADE;
 三 3種標準角色
 Qracle爲了兼容以前的版本,提供了三種標準的角色(role):CONNECT、RESOURCE和DBA。

  1. CONNECT Role(連接角色)

  臨時用戶,特別是那些不需要建表的用戶,通常只賦予他們CONNECTrole。CONNECT是使用Oracle的簡單權限,這種權限只有在對其他用戶的表有訪問權時,包括select、insert、update和delete等,纔會變得有意義。擁有 CONNECT role的用戶還能夠創建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其他數據庫的鏈(link)。

  2. RESOURCE Role(資源角色)

  更可靠和正式的數據庫用戶可以授予RESOURCE role。RESOURCE提供給用戶另外的權限以創建他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。

  3. DBA Role(數據庫管理員角色)

  DBA role擁有所有的系統權限----包括無限制的空間限額和給其他用戶授予各種權限的能力。SYSTEM由DBA用戶擁有。下面介紹一些DBA經常使用的典型權限。

  (1)grant(授權)命令

  下面對剛纔創建的用戶user01授權,命令如下:

  grant connect, resource to user01;

  (2)revoke(撤消)權限

  已授予的權限可以撤消。例如撤消(1)中的授權,命令如下:

  revoke connect, resource from user01;

  一個具有DBA角色的用戶可以撤消任何別的用戶甚至別的DBA的CONNECT、RESOURCE 和DBA的其他權限。當然,這樣是很危險的,因此,除非真正需要,DBA權限不應隨便授予那些不是很重要的一般用戶。

  撤消一個用戶的所有權限,並不意味着從Oracle中刪除了這個用戶, 也不會破壞用戶創建的任何表;只是簡單禁止其對這些表的訪問。其他要訪問這些表的用戶可以象以前那樣地訪問這些表。

  四、創建角色

  除了前面講到的三種系統角色----CONNECT、RESOURCE和DBA,用戶還可以在Oracle創建自己的role。用戶創建的role可以由表或系統權限或兩者的組合構成。爲了創建role,用戶必須具有CREATE ROLE系統權限。下面給出一個create role命令的實例:

  create role STUDENT;

  這條命令創建了一個名爲STUDENT的role。

  一旦創建了一個role,用戶就可以給他授權。給role授權的grant命令的語法與對對用戶的語法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:

  grant select on CLASS to STUDENT;

  現在,擁有STUDENT 角色的所有用戶都具有對CLASS 表的select權限。

  五、刪除角色

  要刪除角色,可以使用drop role命令,如下所示:

  drop role STUDENT;

  指定的role連同與之相關的權限將從數據庫中全部刪除。




查看用戶、用戶權限、用戶表空間、用戶默認表空間

 

查看用戶和默認表空間的關係。 
  select   username,default_tablespace   from   dba_users;

1.查看錶結構:desc表名

2.查看當前用戶的表:

    select table_name from user_tables;


3.查看所有用戶的表名:

    select  table_name  from all_tables; 


4.查看所有表名(其中包括系統表)

    select table_name  from all_tables;  


5.查看所有的表:

    select  *  from  tab/dba_tables/dba_objects/cat;

下面介紹Oracle查詢用戶表空間

◆Oracle查詢用戶表空間:select * from user_all_tables

◆Oracle查詢所有函數和儲存過程:select * from user_source

◆Oracle查詢所有用戶:select * from all_users.select * from dba_users

◆Oracle查看當前用戶連接:select * from v$Session

◆Oracle查看當前用戶權限:select * from session_privs

◆Oracle查看用戶表空間使用情況:

    select a.file_id "FileNo",a.tablespace_name 

    "Tablespace_name", 

    a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used", 

    sum(nvl(b.bytes,0)) "Free", 

    sum(nvl(b.bytes,0))/a.bytes*100 "%free" 

    from dba_data_files a, dba_free_space b 

    where a.file_id = b .file_id(+) 

    group by a.tablespace_name , 

    a.file_id,a.bytes order by a.tablespace_name;


1.查看所有用戶:



  select * from dba_user;



  select * from all_users;



  select * from user_users;



2.查看用戶系統權限:



  select * from dba_sys_privs;



  select * from all_sys_privs;



  select * from user_sys_privs;



3.查看用戶對象權限:



  select * from dba_tab_privs;



  select * from all_tab_privs;



  select * from user_tab_privs;



4.查看所有角色:



  select * from dba_roles;



5.查看用戶所擁有的角色:



  select * from dba_role_privs;



  select * from user_role_privs;



6.查看角色所擁有的權限:



  select * from role_sys_privs;



  select * from role_tab_privs;



7.查看所有系統權限



  select * from system_privilege_map;



8.查看所有對象權限



  select * from table_privilege_map;



以上是在Oracle中查看用戶權限 ,



在DB2中爲:



  select * from syscat.dbauth



  或者



  get authorizations



查看sid



  select * from v$instance

==================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章