Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43115
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-25 14:44
文章分类
文章存档

2015年(11)

我的朋友

分类: Oracle

2015-10-30 17:30:54

1、cmd窗口sqlplus连接命令:

点击(此处)折叠或打开

  1. sqlplus <username>[/<password>][@<connect_identifer>]/[AS SYSDBA| AS SYSOPER]/NOLOG
  2. username:用户名
  3. password:密码
  4. connect_identifer:连接字符串,如果是当前实例,不需要指定,如果连接其他数据库需要指定。
  5. AS SYSDBA|AS SYSOPER 登录身份,如果是操作系统验证,指定AS SYSDBA或者AS SYSOPER,可以不用数据密码。
  6. /NOLOG 是指不用身份登录,先进入SQL*PLUS运行环境,在通过sqlplus连接数据库。

用户密码修改:

点击(此处)折叠或打开

  1. alter user user01 identified by user10;
  2. 用户已更改。
  3. 这个是把USER01用户密码修改为USER10
数据库启停

点击(此处)折叠或打开

  1. SQL> shutdown immediate
  2. 数据库已经关闭。
  3. 已经卸载数据库。
  4. ORACLE 例程已经关闭。
  5. SQL> conn sys/sys@ora10203 as sysdba
  6. 已连接。
  7. SQL> startup
  8. ORACLE 例程已经启动。
  9. Total System Global Area 1593835520 bytes
  10. Fixed Size 1293116 bytes
  11. Variable Size 637535428 bytes
  12. Database Buffers 947912704 bytes
  13. Redo Buffers 7094272 bytes
  14. 数据库装载完毕。
  15. 数据库已经打开。

2、cmd查看数据库监听:

点击(此处)折叠或打开

  1. C:\Users\258428>lsnrctl status
  2. LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 30-10月-2015 16:5
  3. 2:06
  4. Copyright (c) 1991, 2006, Oracle. All rights reserved.
  5. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SHA-P04150022.deppon.com)(PORT=1521)))
  6. "258428" Sid: S-1-5-21-2892426107-689781946-1002394686-301933
  7. LISTENER 的 STATUS
  8. ------------------------
  9. 别名 LISTENER
  10. 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
  11. ction
  12. 启动日期 30-10月-2015 16:33:03
  13. 正常运行时间 0 天 0 小时 19 分 8 秒
  14. 跟踪级别 off
  15. 安全性 ON: Local OS Authentication
  16. SNMP OFF
  17. 监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
  18. ra
  19. 监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener.log
  20. 监听端点概要...
  21. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SHA-P04150022.deppon.com)(PORT=1521)))
  22. 服务摘要..
  23. 服务 "PLSExtProc" 包含 1 个例程。
  24. 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
  25. 服务 "ora10203" 包含 2 个例程。
  26. 例程 "ora10203", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
  27. 例程 "ora10203", 状态 READY, 包含此服务的 1 个处理程序...
  28. 服务 "ora10203XDB" 包含 1 个例程。
  29. 例程 "ora10203", 状态 READY, 包含此服务的 1 个处理程序...
  30. 服务 "ora10203_XPT" 包含 1 个例程。
  31. 例程 "ora10203", 状态 READY, 包含此服务的 1 个处理程序...
  32. 命令执行成功
  33. C:\Users\258428>lsnrctl start  --启动监听
  34. C:\Users\258428>lsnrctl stop   --停止监听
3、操作前先设置当前实例

点击(此处)折叠或打开

  1. C:\Users\258428>set ORACLE_SID=ora10203

4、不登陆进入SQLPLUS

点击(此处)折叠或打开

  1. C:\Users\258428>sqlplus /NOLOG
  2. SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 10月 30 16:57:32 2015
  3. Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
5、oracle各种系统表查询

点击(此处)折叠或打开

  1. 1.查看所有用户:
  2. select * from dba_users;
  3. select * from all_users;
  4. select * from user_users;
  5. 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
  6. select * from dba_sys_privs;
  7. select * from user_sys_privs; (查看当前用户所拥有的权限)
  8. 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
  9. sql>select * from role_sys_privs;
  10. 4.查看用户对象权限:
  11. select * from dba_tab_privs;
  12. select * from all_tab_privs;
  13. select * from user_tab_privs;
  14. 5.查看所有角色:
  15. select * from dba_roles;
  16. 6.查看用户或角色所拥有的角色:
  17. select * from dba_role_privs;
  18. select * from user_role_privs;
  19. 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
  20. select * from V$PWFILE_USERS
  21. 8.SqlPlus中查看一个用户所拥有权限
  22. select * from dba_sys_privs where grantee='username';
  23. 其中的username即用户名要大写才行。
  24. 比如:
  25. select * from dba_sys_privs where grantee='TOM';

  26. 9、Oracle删除指定用户所有表的方法
  27. select 'Drop table '||table_name||';' from all_tables
  28. where owner='要删除的用户名(注意要大写)';
  29. 10、删除用户
  30. drop user user_name cascade;
  31. 如:drop user SMCHANNEL CASCADE
  32. 11、获取当前用户下所有的表:select table_name from user_tables;
  33. 12、删除某用户下所有的表数据: select 'truncate table ' || table_name from user_tables;
  34. 13、禁止外键
  35. ORACLE数据库中的外键约束名都在表user_constraints中可以查到。其中constraint_type='R'表示是外键约束。
  36. 启用外键约束的命令为:alter table table_name enable constraint constraint_name
  37. 禁用外键约束的命令为:alter table table_name disable constraint constraint_name
  38. 然后再用SQL查出数据库中所以外键的约束名:
  39. select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
  40. select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
  41. 14、ORACLE禁用/启用外键和触发器
  42. --启用脚本
  43. SET SERVEROUTPUT ON SIZE 1000000
  44. BEGIN
  45. for c in (select 'ALTER TABLE '||TABLE_NAME||' ENABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
  46. DBMS_OUTPUT.PUT_LINE(C.V_SQL);
  47. begin
  48. EXECUTE IMMEDIATE c.v_sql;
  49. exception when others then
  50. dbms_output.put_line(sqlerrm);
  51. end;
  52. end loop;
  53. for c in (select 'ALTER TABLE '||TNAME||' ENABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
  54. dbms_output.put_line(c.v_sql);
  55. begin
  56. execute immediate c.v_sql;
  57. exception when others then
  58. dbms_output.put_line(sqlerrm);
  59. end;
  60. end loop;
  61. end;
  62. /
  63. commit;
  64. --禁用脚本
  65. SET SERVEROUTPUT ON SIZE 1000000
  66. BEGIN
  67. for c in (select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
  68. DBMS_OUTPUT.PUT_LINE(C.V_SQL);
  69. begin
  70. EXECUTE IMMEDIATE c.v_sql;
  71. exception when others then
  72. dbms_output.put_line(sqlerrm);
  73. end;
  74. end loop;
  75. for c in (select 'ALTER TABLE '||TNAME||' DISABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
  76. dbms_output.put_line(c.v_sql);
  77. begin
  78. execute immediate c.v_sql;
  79. exception when others then
  80. dbms_output.put_line(sqlerrm);
  81. end;
  82. end loop;
  83. end;
  84. /
  85. commit;



阅读(1640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~