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




相关文章
|
5天前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
23天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1天前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
8 1
|
11天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
11天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
38 2
|
14天前
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
7天前
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
11 0
|
15天前
|
SQL Oracle 关系型数据库
Oracle数据库管理:从入门到精通
表(Table):表是Oracle数据库中存储数据的基本结构单元,由行(Row)和列(Column)组成。每行代表一个记录,每列代表一个字段。 SQL(Structured Query Language):SQL是Oracle数据库的核心语言,用于与数据库交互,执行查询、插入、更新和删除等操作。 数据库实例与数据库:在Oracle中,数据库实例是一组后台进程和内存结构,用于管理数据库并提供服务。而数据库则是数据的物理存储,包括数据文件、控制文件、联机日志和参数文件等。
39 0
|
2月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
183 2
|
3月前
|
存储 缓存 Oracle
Oracle数据库可扩展性和性能
【7月更文挑战第6天】
73 7

推荐镜像

更多