Oracle常见下令操作

Oracle常见命令操作

 

 

1. 创建表空间、用户、给用户授权:

create tablespace temptusers datafile 'D:\oracle\product\10.2.0\

oradata\oracl\temptusers.dbf' size 1024m

 

create user e2qoa_v3 identified by "123456"

profile default

default tablespace users

temporary tablespace temptusers

account unlock

 

grant connect to e2qoa_v3

grant create session to e2qoa_v3

grant dba to e2qoa_v3

 

2. 命令行进入sqlplus并查看oracle版本:

sqlplus sys/sys as sysdba

SQL> select banner from sys.v_$version;

3. 查看当前登录的用户:

SQL>show user;

4. 查看所有管理员用户的状态:

SQL>select * from dba_users;

又如:SQL>select account_status from dba_users where username=’E2QOA_V3’;

5. 另外常见命令:

create user XXX identified by 密码;

alter user XXX default tablespace 表空间名 quota unlimited on 表空间名;

alter user XXX temporary tablespace temp;

grant create trigger to XXX ;

grant create session to XXX ;

grant create sequence to XXX ;

grant create synonym to XXX ;

grant create table to XXX ;

grant create view to XXX ;

grant create procedure to XXX ;

grant alter session to XXX ;

grant execute on ctxsys.ctx_ddl to XXX ;

grant dba to XXX ;

6. 查看某个表空间中包含的所有表的名称:

select table_name from dba_tables where tablespace_name='USERS'

或者:

SELECT * FROM DBA_SEGMENTS WHERE TABLESPACE_NAME='TABLESPACE_NAME' AND SEGMENT_TYPE='TABLE'

7. 关于sys用户和system用户的区别:

1)存储的数据重要性不同。所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动改动。sys用户拥有dbasysdbasysoper等角色和权限,是oracle权限最高的用户;而sys用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息,system用户拥有普通dba角色权限。

2)权限不同。system用户只能用normal身份登录em,除非你对它赋予了sysdba的系统权限或者sysoper系统权限;sys用户具有sysdbasysoper  系统权限,登录em只能用这两个身份,而不能用normal

8.sys身份登录oracle查询具有sysdba权限的用户:

SQL> select * from v_$pwfile_users;

结果如下:

USERNAME SYSDBA  SYSOPER
 SYS     TRUE    TRUE

另外,system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。因此在as sysdba连接数据库后,创建的对象实际上都是生成在sys中的。其他用户也是一样,如果 as sysdba登录,也是作为sys用户登录的,看以下实验:

SQL> conn / as sysdba
已连接。
SQL> grant sysoper to test;

授权成功。

SQL> conn test/test as sysoper;
已连接。
SQL> show user
USER
"SYS"
SQL> conn test/test as sysdba
已连接。
SQL> show user
USER
"SYS"

9. sysdbasysoper两个系统权限区别:

   我们知道normal是普通用户,而sysdbasysoper是具有系统管理级别的权限,sysdba拥有最高的系统权限,登陆后是syssysoper主要用来启动、关闭数据库,sysoper 登陆后用户是public

sysdbasysoper具体的权限如下:

    SYSOPER权限,即数据库操作员权限,权限包括:

          打开数据库服务器   关闭数据库服务器

          备份数据库         恢复数据库

          日志归档        会话限制

   SYSDBA权限,即数据库管理员权限,权限包括:

          打开数据库服务器   关闭数据库服务器
         
备份数据库         恢复数据库

          日志归档           会话限制

          管理功能           创建数据库

10. dbasysdba的区别:

dbasysdba这两个系统角色有什么区别呢?在说明这一点之前我需要说一下oracle服务的创建过程和启动过程。

创建过程:
·创建实例→·启动实例→·创建数据库(system表空间是必须的)

启动过程:
·实例启动→·装载数据库→·打开数据库

sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!

11. 关于oracle的导入导出

expimp命令导出导入过程中推荐使用system用户(具有普通dba权限),因为导出注意事项:导出的是当前用户的数据,当前用户如果有DBA的权限,则导出所有数据!

如下各例:

1).将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp:

   exp system/manager@TEST file=d:\daochu.dmp full=y

2). 将数据库中system用户与sys用户的表导出:

   exp system/manager@TEST file=d:\dao.dmp  owner=(system,sys)

3). 将数据库中的表table1 table2导出:

   exp system/manager@TEST file=d:\da.dmp  tables=(table1,table2)

4). 将数据库中的表table1中的字段filed1"00"打头的数据导出:

   exp system/manager@TEST file=d:\daochu.dmp  tables=(table1) query=\" where filed1 like  '00%'\"

5). D:\daochu.dmp 中的数据导入 TEST数据库中:

   imp system/manager@TEST  file=d:\daochu.dmp

   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。

6). d:\daochu.dmp中的表table1 导入:

imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)

7). 同名用户之间的数据导入:

imp hkb/hkb@xe  file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y

8). 不同名用户之间的数据导入:

imp system/test@xe fromuser=hkb touser=hkb_new   file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log;

12. syssystem用户的密码遗忘后的修改:

1). 在命令行下输入以下命令登陆:

sqlplus / as sysdba;        提示:斜杆后必须有空格

    2)用alter语句修改syssystem用户的密码,如下:

SQL> alter user sys identified by sys;

用户已更改。

SQL> alter user system identified by system;

用户已更改。

详情如下图所示:

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:392.25pt; height:202.5pt'> <v:imagedata src="file:///C:\DOCUME~1\_Bean.Woo\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.jpg" o:title="1111" /> </v:shape><![endif]--><!--[if !vml]-->Oracle常见下令操作<!--[endif]-->