今天简单的了解oracle
* 数据库服务器:2007年最新版本11G
* 应用服务器: Oracle Application Server
* 开发工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等
* 应用软件(主要竞争对手:德国SAP公司。)
* 企业资源计划(ERP)软件。
* 客户关系管理 (CRM)软件。
* 人力资源管理软件(HCM)。
sql*plus常用命令
■ 连接命令
(1)conn[ect]
用法: conn 用户名/密码@网络服务名 [as sysdba/sysoper]
当用特权用户身份连接时,必须带上 as sysdba 或是 as sysoper
(2)disc[onnect]
说明:该命令用来断开与当前数据库的连接
(3)passw[ord]
说明:该命令用于修改用户的密码.如果要想修改其它用户的密码,需要用sys/system登陆.
(4)show user
说明:显示当前用户名
(5)exit
说明:该命令会断开与数据库的连接,同时会退出sql*plus
■ 交互式命令
(1)&
说明:可以替代变量,而该变量在执行时,需要用户输入。
sql>select * from emp;(查找所有表空间)
sql>select * from emp where job='&job'(where 表示条件,&代表从dos命令中输入)
(2)edit
说明:该命令可以编辑指定的sql脚本
案例:sql>edit
(3)spool(几乎不用)
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去.
案例:sql>spool d:\b.sql 并输入 sql>spool off
■ 显示和设置环境变量
概述:可以用来控制输出的各种格式。
(1)linesize
说明:设置显示行的宽度,默认是80个字符
sql>show linesize
sql>set linesize 90
(2)pagesize
说明:设置每页显示的行数目,默认是14,用法和linesize一样。至于其它环境参数的使用也是大同小异
oracle用户管理
■ 创建用户(简单版)
概述:在oracle中要创建一个新的用户使用 create user 语句,一般是具有dba(数据库管理员)的权限才能使用。
基本语法:create user 用户名 identified by 密码
■ 给用户修改密码
概述:如果给自己修改密码可以直接使用
sql>password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
sql>alter user 用户名 identified by 新密码
■ 创建用户(细节)
例子: sql> create user shunping identified by m123
default tablespace users
temporary tablespace temp
quota 3m on users;(这行可有可无)
identified by 表明该用户shunping 将用数据库方式验证 default tablespace users //用户的表空间在users上
temporary tablespace temp //用户shunping的临时表健在temp 空间
quota 3m on users //表明用户shunping 建立的数据对象(表,索引,视图,pl/sql块..)最大只能是3m
刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权.
sql>grant connect to shunping
如果你希望该用户建表没有空间的限制
sql>grand resource to shunping
如果你希望该用户成为dba
sql>grant dba to shunping
■ 删除用户
概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user的权限。
比如 drop user 用户名 【cascade】(强制删除)
■ 用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令 revoke。
基本语法: grant 权限/角色 to 用户
为了给讲清楚用户的管理,这里我给大家举一个案例。
①创建 xiaoming,并赋予 connect 和 resource 例:(grant connect,resource to 用户名)
②回收权限 (revoke connect,resource from 用户名)
sql> createprofilelock_accountlimitfailed_login_attempts 3 password_lock_time 2;
sql>alteruser teaprofilelock_account;
2)给帐户(用户)解锁
sql> alter usertea account unlock;
(3)终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作.
例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天。看看怎么做.
sql> createprofilemyprofilelimitpassword_life_time 10 password_grace_time 2;
sql>alter user tea profilemyprofile
■ 口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
例子:
1)建立profile
sql> create profilepassword_history limitpassword_life_time 10password_grace_time 2 password_reuse_time 10
password_reuse_time //指定口令可重用时间即10天后就需要修改
2)分配给某个用户.
sql>alter user tea profilemyprofile
■ 删除profile
概述:当不需要某个profile文件时,可以删除该文件.
sql>drop profileprofile文件名
oracle也可以通过命令行的方式启动,我们看看具体是怎样操作。
■ oracle启动流程-windows下
1) lsnrctlstart (启动监听)
2) oradim –startup –sid 数据库实例名
■ oracle启动流程-linux下
1) lsnctlstart (启动监听)
2) sqlplus sys/change_on_install assysdba (以sysdba 身份登录,在oracle10g后可以这样写)
sqlplus /nolog
conn sys/change_on_install assysdba
3) startup
■ oracle登录认证方式-windows下
概述: oracle登录认证在windows下和linux下是不完全相同的,这里我们先说说windows下oracle的登录认证方式.
①操作系统认证
如果当前用户属于本地操作系统的ora_dba组(对于Windows操作系统而言),即可通过操作系统认证。
②oracle数据库验证(密码文件验证)
对于普通用户,oracle默认使用数据库验证。
对于特权用户(比如sys用户),oracle默认使用操作系统认证,如果验证不通过,再到数据库验证(密码文件验证)。通过配置sqlnet.ora文件,可以修改oracle登录认证方式
SQLNET.AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证;SQLNET.AUTHENTICATION_SERVICES=(NONE)是基于Oracle验证;SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)是二者共存。
■ oracle登录认证方式-linux下
这里大家了解即可:
默认情况下linux下的oracle数据库sqlnet.ora文件没有SQLNET.AUTHENTICATION_SERVICES参数,此时是基于操作系统认证和oracle密码验证共存的,加上SQLNET.AUTHENTICATION_SERVICES参数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE或者NTS,都是基于oracle密码验证的。
丢失管理员密码怎么办
恢复办法:把原有密码文件删除,生成一个新的密码文件。
恢复步骤如下:
①搜索名为 PWD数据库实例名.ora文件
②删除该文件,为预防万一,建议大家备份
③生成新的密码文件,在dos控制台下输入命令:
orapwd file=原来密码文件的全路径\密码文件名.ora password=新密码 entries=10;//entries:允许几个特权用户
密码文件名一定要和原来的密码文件名一样。