设为首页 收藏本站
查看: 808|回复: 0

[经验分享] Oracle数据库常用的操作命令

[复制链接]

尚未签到

发表于 2016-7-25 09:20:08 | 显示全部楼层 |阅读模式
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
      对象权限就是指在表、视图、序列、过程、函数或包等对象上执行特殊动作的权利.有九种不同类型的权限可以授予

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248959-1-1.html 上篇帖子: Oracle性能优化的基本方法概述 下篇帖子: 存取Oracle当中扫描数据的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表