今日數據庫用戶被鎖,查了下,說是登錄錯誤超過10次用戶就會被鎖定,於是有了解鎖和改密碼操作
以不鏈接數據庫方式啓動sqlplussqlplus /nolog;
以dba身份鏈接數據庫:conn /as sysdba;
數據庫啓動模式及用處:startup:open模式,啓動實例加載並打開數據庫,正常啓動執行數據導入導出;
使用sql*loader提取外部數據;
需要暫時拒絕普通用戶訪問數據庫;
進行數據庫移植或升級操作;非受限狀態
受限狀態:startup restrict,只有DBA可以訪問數據庫
startup force:强行启动数据库(貌似存在一定風險)
startup mount:mount模式,啓動實例和加載數據庫,但不打開數據庫(尚未弄明白其中含義)重命名數據庫;
添加、刪除、重命名日誌文件;
執行數據庫完全恢復模式;
改變數據的歸檔模式;
startup nomount:nomount模式,啓動實例不加載數據庫。僅爲實例創建各種內存結構和服務進程,用於創建數據庫;
重建控制文件;
狀態間轉換:
轉open模式:Alter database open
轉mount模式:Alter database mount
轉nomount模式:Alter database nomount
受限状态改变为非受限状态:alter system disable restricted session
非受限状态变为受限状态:alter system enable restricted session
数据库只读状态:alter database open read only
数据库读写状态:alter database open read write
關閉數據庫:
1.shutdown:正常關閉,等待鏈接結束
2.shutdown immediate:立即關閉
3.shutdown transactional:關閉事物
4.shutdown abort:強行關閉(存在風險)
解鎖:
alter user username account unlock;其中username为被锁定的用户名。
改密碼:
alter user username identified by password;其中username为用户名,password为新密码。
開啓遠程監聽端口$lsnrctl start
測試數據庫鏈接:
tnsping TEST 来获得数据库TEST能否连上
SQL查詢
查看所有表SQL> select * from tab;
查看数据库存放目录SQL> select name from v$datafile
查看服务名SQL> show parameter service
查看实例名SQL> select * from v$instance;
查看数据库名SQL> select name from v$database;
查看所有用户信息SQL> select * fromdba_users;
只查询用户和密码SQL> select username,password from dba_users;
查看具有sysdba权限的用户SQL> select * fromv$pwfile_users;
查看当前用户信息SQL> select * fromdba_ustats;
查看当前用户系统权限SQL> select * fromuser_sys_privs
查看当前用户角色SQL> select * fromuser_role_privs
查看指定用户所具有的系统权限SQL> select * fromdba_sys_privs
查看oracle版本SQL> select * fromv$version
查看视图信息SQL> select * fromuser_views
用戶區別
sys和system用户区别
1>.存储数据重要性不同
sys存放数据字典的基表和视图,由数据库自己维护,任何用户都不能手动更改,sys用户拥有dba、sysdba、sysoper等角色或权限,是oracle权限最高用户。
而system用户只存放一些一级的内部数据,如oracle的一些特性或工具的管理信息。用于数据库管理,System用户拥有普通dba角色权限。
2>.权限不同
sys用户具有sysdba或sysoper系统权限,登录em也只能用这两个身份,不能用normal。
system用户只能用normal身份登录em,除非你对它授予了sysdba的系统权限或syspoer系统权限。
sysdba和sysoper两个系统权限区别
normal是普通用户
sysdba拥有最高的系统权限,登录后是sys
sysoper主要用来启动、关闭数据库,sysoper登录后用户是public
dba和sysdba的区别
先了解下oracle服务的创建过程:创建实例 --> 启动实例 --> 创建数据库
启动过程:实例启动 --> 装载数据库 --> 打开数据库
sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,它就已经存在,以sysdba身份登录,装载数据库,打开数据库。只有数据库打开了,或者整个数据库完全启动后,dba角色才有存在的基础。