在此,大概总结一下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/demo@192.168.10.121: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)
)
)';
以上是部分常用命令,不过还有好多,也有很多大牛总结的比我好很多,还望大家见谅,未完待续...