在此,大概總結一下oracle常用命令,在工作中經常使用,但是有時候總是遺忘,希望有用,命令如下
cmd或sqlplus連接oracle
sqlplus /nolog回車
conn sys/123456 as sysdba; 或者conn /as sysdba; 回車,這是系統認證用戶具有dba權限
登陸之後你可以查看當前是那個用戶登陸實例用show user;
然後查看
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶權限或角色系統權限(直接賦值給用戶或角色的系統權限):
select * from dba_sys_privs;
select * from user_sys_privs; (查看當前用戶所擁有的權限)
3.查看當前用戶的角色(只能查看登陸用戶擁有的角色)所包含的權限
sql>select * from role_sys_privs;
Select* from user_role_privs;
4.查看用戶對象權限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
6.查看用戶或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.查看哪些用戶有sysdba或sysoper系統權限(查詢時需要相應權限)
select * from V$PWFILE_USERS
8.SqlPlus中查看一個用戶所擁有權限
SQL>select * from dba_sys_privs where grantee='username';
其中的username即用戶名要大寫才行。
比如:
SQL>select * from dba_sys_privs where grantee='TOM';
9、Oracle刪除指定用戶所有表的方法
select 'Drop table '||table_name||';' from all_tables
where owner='要刪除的用戶名(注意要大寫)';
10、刪除用戶
drop user user_name cascade;
如:drop userSMCHANNEL CASCADE
11、獲取當前用戶下所有的表:select table_name from user_tables;
查看所有用戶的表名:
select table_name from all_tables;
查看所有表名(其中包括系統表)
select table_name from DBA_tables;
12、刪除某用戶下所有的表數據:select 'truncate table ' || table_name from user_tables;
13、查看表結構 desc 表名14、Oracle查詢所有函數和儲存過程:select* from user_source
15、Oracle查看當前用戶連接:select * fromv$Session
16、Oracle查看當前用戶權限:select * fromsession_privs
17、在Oracle中查看所有的表:
select * from tab
select * from dba_tables
select* from dba_objects18、查看用戶所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
19、查看角色所擁有的權限:
select * from role_sys_privs;
select * from role_tab_privs;
20、查看所有系統權限
select * fromsystem_privilege_map;
21、查看所有對象權限
select * fromtable_privilege_map;
22、創建用戶
create user test identified by "123456";
23、給用戶賦權限
grant connect,resource,dba to test; 此時登陸的用戶有賦值權限
grant select on temp to test;
grant any table to test;
grant create any sequence todemo;
grant create any table to demo;
grant delete any table to demo;
grant insert any table to demo;
grant select any table to demo;
grant unlimited tablespace todemo;
grant execute any procedure todemo;
grant update any table to demo;
grant create any view to demo;24、有時候經常忘記用戶的口令,此時需要修改用戶密碼
首先用sys登陸
conn /as sysdba;
然後修改用戶的密碼
alter user test identified by "123456";
alter user system identified by "123456";
alter user dbsnmp identified by "123456";
25、刪除用戶
drop user test;
刪除用關聯的表或者角色或者對象
drop user test cascade;
26、有賦值權限給用戶當然可以收回權限
revoke connect,resource,dba from test;
27、創建角色
create role student;
grant select on 表名 to student;
28、刪除表
drop table 表名;
因為用drop table,delete * from 表名時,tablespace表空間該表的占用空間並未釋放,反復幾次drop,delete操作後,該tablespace上百兆的空間就被耗光了
直接可以使用truncate table 表名
29、創建表空間
create tablespace test_tablespace
datafile'E:/oracle_tablespaces/test_tablespace.dbf'
size 1500M
autoextend on next 5M maxsize3000M;
刪除表空間
drop tablespace test_tablespace including contents and datafiles;
30、授予用戶使用表空間的權限
授予用戶使用表空間的權限:
alter user 用戶名 quota unlimited on 表空間;
或 alter user 用戶名 quota *M on 表空間;
31、索引表空間CREATE TABLESPACE test_tablespace_Index
DATAFILE 'F:\tablespace\demo'size 512M
EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO;32、導入導出命令
ip導出方式: expdemo/[email protected]:1521/orcl file=f:/backup_test.dmp full=y
exp demo/demo@orcl file=f:/backup_test.dmpfull=y
imp demo/demo@orcl file=f:/backup_test.dmpfull=y ignore=y
33、創建遠程連接database link-- Create database link
create database link mydblink
connect to BRUCE identified by "123456";
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.126)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test1)
)
)';
以上是部分常用命令,不過還有好多,也有很多大牛總結的比我好很多,還望大家見諒,未完待續...