Oracle数据库常用的操作命令

简介:
 

Oracle数据库常用的操作命令

常用的数据字典表:tab,user_tables,user_objects,user_catalog,user_constraints,user_cons_columns
1、视图在所有存储过程(数据字典表)中查询是否有某一字符串的SQL语句
      select * from all_source where type='PROCEDURE' and lower(text) like '%student %'
      select * from user_source where lower(text) like '%dbms_%'
      select   tname,cname,coltype,width from col where tname='STUDENT'
      select * from all_tables where owner ='OEMS'
      select * from all_constraints where constraint_name = 'JWTHESIS_R_THESISWRITEBATCH_ID'

2、sqlplus连接oracle
      Oracle安装后默认密码: sys(change_on_install),system(manager),internal(oracle),scott(tiger)
      connect system/manager as sysdba;(as sysoper)
      connect internal/oracle AS SYSDBA;(scott/tiger)
      connect sys/change_on_install as sysdba;

3、查看当前连接数:select * from v$license
      查看当前的所有数据库:     select * from v$database;
      查看当前所有的数据库实例: select * from v$instance   
      查看当前库的所有数据表all_tables(用户表user_tables): 
      select * from all_tables where table_name like 'T%' and owner='SYS'; 
      查看当前数据库连接用户    sqlplus Show user;或者select uid,user from dual;
      查看当前数据库系统时间    select sysdate from dual;
      查看数据库表结构字段:     desc v$database; 
      查看哪些用户拥有SYSDBA、SYSOPER权限: select * from v_$PWFILE_USERS; 

4. 怎样删除用户会话
      SELECT * FROM v$session WHERE lower(USERNAME) = 'oems';
      ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

5、改变一个对象的名字,执行RENAME语句,改变一个表、视图、序列或同义词
      RENAME dept TO detail_dept;

6、检查用户是否将SYSTEM 表空间作为缺省表空间
      SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE          DEFAULT_TABLESPACE ='SYSTEM';

7、怎样查找产生锁的SQL 语句
      select s.username username,a.sid sid,a.owner||'.'||a.object object,s.lockwait,t.sql_text SQL
      from v$sqltext t,v$session s,v$access a
      where t.address=s.sql_address and t.hash_value=s.sql_hash_value and s.sid = a.sid and a.owner != 'SYS' 

and upper    (substr(a.object,1,2)) != 'V$'

8、添加注释到表中,用COMMENT语句添加注释到一个表或列中
      (注释通过数据字典视图查看CALL_COL_COMMENTS,CUSER_COL_COMMENTS,CALL_TAB_COMMENTS,CUSER_TAB_COMMENTS)
    COMMENT ON TABLE employees IS 'Employee Information'

9、系统日期sysdate显示,环境变量nls_date_format设置日期显示格式
      alter session set nls_date_format='yyyy"天"mm"月"dd"日"' --'yyyy-mm-dd hh24:mi:ss'

10、日期显示的类型
      Select sysdate,to_char(sysdate,'yyyy.mm.dd')col1,to_char(sysdate,'dd-mon-yyyy hh24:mi:ss day')col2 

from dual
      Select trunc(sysdate) + 0.5 col from dual 
      Select trunc(sysdate) ||' 12:00:00' col From dual

11、DBA权限
--典型的DBA权限--
--系统权限--                    
--授权的操作--
create user          受让人可以创建其他 oracle 用户 (需要有DBA角色权限)。
drop user            受让人可以删除另一个用户。
drop any table       受让人可以删除在任意方案中的表。
backup any table     受让人用导出实用程序可以备份在任何方案中的任何表。
select any table     受让人可以查询在任何方案中的表、视图或快照。
create any table     受让人可以在任何方案中创建表。
1.create user   创建用户(通常由DBA执行)
2.create role   创建一个权限的集合(通常由DBA执行)
3.grant         给予其他用户权限来访问本用户的对象
4.alter user    改变用户口令
5.revoke        删除在用户对象上的权限

(1)DBA用create user语句创建用户:    
      create user scott identified by tiger
      create user scott identified by tiger default tablespace users Temporary TABLESPACE Temp;
      用sys以sysdba的身份来进行登录,在sys状态是locked的时候也是能登录的.然后再使用:锁定alter user scott 

account lock;解锁alter user sys account unlock
(2)创建角色并且授予权限给角色,角色是命名的可以授予用户的相关权限的组,该方法使得授予、撤回和维护权限容易的多
      首先,DBA必须创建角色,然后,DBA可以分配角色给角色和用户,创建角色:create role manager;
(3)DBA授予指定的系统权限
<1>授予指定系统权限给一个用户
    grant create session, create table, create sequence, create view to scott;
<2>授予权限给一个角色
    grant create table, create view to manager;
    grant connect,resource,dba to scott;grant sysdba to scott;
<3>授予一个角色给用户
    grant manager to alice, lily;
<4>授予对象权限,授予查询权限到employees表上
    grant select on employees to sue, rich;
<5>授予权限到以更新指定的列到用户和角色
    grant update (department_name, location_id) on departments to scott, manager;
<6>给一个用户授权以级联权限授予
    grant select, insert on departments to scott with grant option
<7>允许所有在系统上的用户从alice 的departments 表中查询数据: 
    grant select on alice.departments to public

--确认已授予的权限
--数据字典视图--            
--说明--
ROLE_SYS_PRIVS         授予角色的系统权限
ROLE_TAB_PRIVS         授予角色的表权限
USER_ROLE_PRIVS        可由用户访问的角色
USER_TAB_PRIVS_MADE    授予用户的对象上的对象权限
USER_TAB_PRIVS_RECD    授予用户的对象权限
USER_COL_PRIVS_MADE    授予用户对象的列上的对象权限
USER_COL_PRIVS_RECD    授予用户在指定列上的对象权限
USER_SYS_PRIVS         授予用户的系统权限

(4)改变口令,DBA创建用户帐号并且初始化其口令,用alter user语句用户可以改变口令:
    alter user scott identified by tiger;
    alter user system identified by test;

(5)撤消对象权限
    用REVOKE语句撤消授予其他用户的权限,通过WITH GRANT OPTION子句授予其他用户的权限也被撤消
    REVOKE select,insert ON departments FROM scott;

创建数据库链接,USING子句指出了一个远程数据库的服务名。写使用数据库链接的SQL 语句
      CREATE PUBLIC DATABASE LINK hq.sina.com USING 'sales'
      CREATE PUBLIC SYNONYM HQ_EMP FOR emp@hq.sina.com;

系统权限和对象权限
      授予对象权限时语句应该是WITH GRANT OPTION子句,而在授予系统权象时语句是WITH ADMIN OPTION
      对象权限就是指在表、视图、序列、过程、函数或包等对象上执行特殊动作的权利.有九种不同类型的权限可以授予

给用户或角色。
      系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话、建立表或建立用户等等

Oracle数据库常用的操作命令

常用的数据字典表:tab,user_tables,user_objects,user_catalog,user_constraints,user_cons_columns
1、视图在所有存储过程(数据字典表)中查询是否有某一字符串的SQL语句
      select * from all_source where type='PROCEDURE' and lower(text) like '%student %'
      select * from user_source where lower(text) like '%dbms_%'
      select   tname,cname,coltype,width from col where tname='STUDENT'
      select * from all_tables where owner ='OEMS'
      select * from all_constraints where constraint_name = 'JWTHESIS_R_THESISWRITEBATCH_ID'

2、sqlplus连接oracle
      Oracle安装后默认密码: sys(change_on_install),system(manager),internal(oracle),scott(tiger)
      connect system/manager as sysdba;(as sysoper)
      connect internal/oracle AS SYSDBA;(scott/tiger)
      connect sys/change_on_install as sysdba;

3、查看当前连接数:select * from v$license
      查看当前的所有数据库:     select * from v$database;
      查看当前所有的数据库实例: select * from v$instance   
      查看当前库的所有数据表all_tables(用户表user_tables): 
      select * from all_tables where table_name like 'T%' and owner='SYS'; 
      查看当前数据库连接用户    sqlplus Show user;或者select uid,user from dual;
      查看当前数据库系统时间    select sysdate from dual;
      查看数据库表结构字段:     desc v$database; 
      查看哪些用户拥有SYSDBA、SYSOPER权限: select * from v_$PWFILE_USERS; 

4. 怎样删除用户会话
      SELECT * FROM v$session WHERE lower(USERNAME) = 'oems';
      ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

5、改变一个对象的名字,执行RENAME语句,改变一个表、视图、序列或同义词
      RENAME dept TO detail_dept;

6、检查用户是否将SYSTEM 表空间作为缺省表空间
      SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE          DEFAULT_TABLESPACE ='SYSTEM';

7、怎样查找产生锁的SQL 语句
      select s.username username,a.sid sid,a.owner||'.'||a.object object,s.lockwait,t.sql_text SQL
      from v$sqltext t,v$session s,v$access a
      where t.address=s.sql_address and t.hash_value=s.sql_hash_value and s.sid = a.sid and a.owner != 'SYS' 

and upper    (substr(a.object,1,2)) != 'V$'

8、添加注释到表中,用COMMENT语句添加注释到一个表或列中
      (注释通过数据字典视图查看CALL_COL_COMMENTS,CUSER_COL_COMMENTS,CALL_TAB_COMMENTS,CUSER_TAB_COMMENTS)
    COMMENT ON TABLE employees IS 'Employee Information'

9、系统日期sysdate显示,环境变量nls_date_format设置日期显示格式
      alter session set nls_date_format='yyyy"天"mm"月"dd"日"' --'yyyy-mm-dd hh24:mi:ss'

10、日期显示的类型
      Select sysdate,to_char(sysdate,'yyyy.mm.dd')col1,to_char(sysdate,'dd-mon-yyyy hh24:mi:ss day')col2 

from dual
      Select trunc(sysdate) + 0.5 col from dual 
      Select trunc(sysdate) ||' 12:00:00' col From dual

11、DBA权限
--典型的DBA权限--
--系统权限--                    
--授权的操作--
create user          受让人可以创建其他 oracle 用户 (需要有DBA角色权限)。
drop user            受让人可以删除另一个用户。
drop any table       受让人可以删除在任意方案中的表。
backup any table     受让人用导出实用程序可以备份在任何方案中的任何表。
select any table     受让人可以查询在任何方案中的表、视图或快照。
create any table     受让人可以在任何方案中创建表。
1.create user   创建用户(通常由DBA执行)
2.create role   创建一个权限的集合(通常由DBA执行)
3.grant         给予其他用户权限来访问本用户的对象
4.alter user    改变用户口令
5.revoke        删除在用户对象上的权限

(1)DBA用create user语句创建用户:    
      create user scott identified by tiger
      create user scott identified by tiger default tablespace users Temporary TABLESPACE Temp;
      用sys以sysdba的身份来进行登录,在sys状态是locked的时候也是能登录的.然后再使用:锁定alter user scott 

account lock;解锁alter user sys account unlock
(2)创建角色并且授予权限给角色,角色是命名的可以授予用户的相关权限的组,该方法使得授予、撤回和维护权限容易的多
      首先,DBA必须创建角色,然后,DBA可以分配角色给角色和用户,创建角色:create role manager;
(3)DBA授予指定的系统权限
<1>授予指定系统权限给一个用户
    grant create session, create table, create sequence, create view to scott;
<2>授予权限给一个角色
    grant create table, create view to manager;
    grant connect,resource,dba to scott;grant sysdba to scott;
<3>授予一个角色给用户
    grant manager to alice, lily;
<4>授予对象权限,授予查询权限到employees表上
    grant select on employees to sue, rich;
<5>授予权限到以更新指定的列到用户和角色
    grant update (department_name, location_id) on departments to scott, manager;
<6>给一个用户授权以级联权限授予
    grant select, insert on departments to scott with grant option
<7>允许所有在系统上的用户从alice 的departments 表中查询数据: 
    grant select on alice.departments to public

--确认已授予的权限
--数据字典视图--            
--说明--
ROLE_SYS_PRIVS         授予角色的系统权限
ROLE_TAB_PRIVS         授予角色的表权限
USER_ROLE_PRIVS        可由用户访问的角色
USER_TAB_PRIVS_MADE    授予用户的对象上的对象权限
USER_TAB_PRIVS_RECD    授予用户的对象权限
USER_COL_PRIVS_MADE    授予用户对象的列上的对象权限
USER_COL_PRIVS_RECD    授予用户在指定列上的对象权限
USER_SYS_PRIVS         授予用户的系统权限

(4)改变口令,DBA创建用户帐号并且初始化其口令,用alter user语句用户可以改变口令:
    alter user scott identified by tiger;
    alter user system identified by test;

(5)撤消对象权限
    用REVOKE语句撤消授予其他用户的权限,通过WITH GRANT OPTION子句授予其他用户的权限也被撤消
    REVOKE select,insert ON departments FROM scott;

创建数据库链接,USING子句指出了一个远程数据库的服务名。写使用数据库链接的SQL 语句
      CREATE PUBLIC DATABASE LINK hq.sina.com USING 'sales'
      CREATE PUBLIC SYNONYM HQ_EMP FOR emp@hq.sina.com;

系统权限和对象权限
      授予对象权限时语句应该是WITH GRANT OPTION子句,而在授予系统权象时语句是WITH ADMIN OPTION
      对象权限就是指在表、视图、序列、过程、函数或包等对象上执行特殊动作的权利.有九种不同类型的权限可以授予

给用户或角色。
      系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话、建立表或建立用户等等
















本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1350554 ,如需转载请自行联系原作者




相关文章
|
11天前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
132 28
|
12天前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。
|
21天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
|
23天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
70 10
|
25天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回查询
本文介绍了Oracle数据库的闪回查询(Flashback Query)功能及其实际应用。闪回查询通过`AS OF`子句,结合时间戳或SCN号,可查询历史数据状态,帮助分析数据差异。文中通过具体示例演示了如何使用闪回查询:创建测试表、记录当前SCN号、更新数据并提交事务,最后通过闪回查询获取历史数据。附带的视频和代码块详细展示了操作步骤与结果。
|
26天前
|
Oracle 关系型数据库 数据管理
【赵渝强老师】Oracle数据库的闪回技术
在Oracle数据库操作中,难免会遇到误删表或提交错误事务等问题,可能导致数据丢失甚至数据库停止运行。传统解决方法依赖备份恢复,但需提前准备正确备份。为此,Oracle提供了闪回技术,无需备份即可快速恢复数据。它支持7种类型的操作,如闪回查询、版本查询、表恢复等,能有效应对逻辑损坏和用户错误。闪回技术基于还原(undo)数据管理,启用自动管理后可实现高效恢复。
|
Oracle 关系型数据库 数据库
|
27天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle数据库的客户端工具
本文介绍了Oracle数据库的三种客户端工具:SQL*Plus、Oracle Enterprise Manager Database Express(EM)和SQL Developer的使用方法。首先通过命令行工具SQL*Plus登录数据库,创建用户并授权,建立部门与员工表,插入数据并查询;接着讲解了如何通过浏览器访问EM界面监控数据库及表空间状态;最后演示了SQL Developer的下载安装、连接配置以及执行查询的过程,帮助用户快速上手Oracle数据库管理与操作。
|
1月前
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
4月前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
234 11

推荐镜像

更多