开发者社区> 技术小甜> 正文

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 ,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle数据库-备份整个数据库与还原整个数据库数据
这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表 这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的 先说本地的导出与导入: 备份(也叫导出): exp用户名/密码@本地服务名 file = 目标地址 (注:导出的文件是在硬盘上生成后缀名为dmp的文件) 阿里云代金券1000元免费领取地址:https://promotion.
2124 0
Oracle跨库链接操作
首先通过PL sql在源数据库A中建立到目标数据库B的连接,语句如下: drop database link orclAB; create shared database link orclAB connect to TargetUserName identified by "TargetUser密码" AUTHENTICATED BY TargetUserName IDE
904 0
云数据库 Mysql 版的常用设置|学习笔记
快速学习云数据库 Mysql 版的常用设置
53 0
在 Linux x86 上安装 Oracle 数据库 10g_3
启动 Oracle 通用安装程序。 $ ./runInstaller 1.      欢迎 o        单击 Next。 2.      指定清单目录和证书 o        如果您一直在依循本指南中的步骤,则使用默认值即可。
903 0
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用(二)
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
123 0
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用(一)
SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用
99 0
不用一行代码,用 API 操作数据库,你信吗(上)
数据库的重要性不言而喻,但是数据库操作起来却不容易,需要用到各种管理工具,各种不同的连接方式,如果有方便的,屏蔽不同数据库细节的工具该多好,功夫不负有心人,我还真找了这样一个工具,不仅支持多种数据库,更厉害的是,不用为适配写一行代码,来了解下吧
30 0
+关注
10140
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载