1Ⅰ.oracleitcast本文档对应程序在myeclipse的jdbc/src/下Oracle安装自动生成sys用户和system用户sys超级用户具有最高权限具有sysDBA角色,有createdatabase权限该用户默认密码是change_in_installsystem管理操作员权限也比较大,具有sysoper角色,没有createdatabase权限。该用户默认密码是manager这是通过sqlplus客户端连接数据库时有多个实例采用下面DOS命令:sqlplusscott/tiger@zhulin见2.13oracle创建数据库实例启动sqlplus,然后登陆数据库出现错误:TNS:协议适配器错误原因有3个:1.监听服务没有启动:services.msc或开始—程序—管理工具—服务,打开服务面板:启动oraclehome92TNSlistener服务2.databaseinstance没有启动:services.msc或开始—程序—管理工具—服务启动oralceserviceXXX,XXX就是你databaseSID如zhulin3.注册表问题:regedit.msc进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1下的ORACLE_SID值修改为zhulin你的全局数据库名字你的数据库SID即可。ORACLE用SYS和SYSTEM默认密码登录提示ORA-01017:invalidusername/password;logonddenied该怎么解决?解决办法:有可能是你在建数据库的时候,修改了默认的密码而自己又忘记你可再重新修改过来sqlplus/assysdbaalterusersystemidentifiedbymanager;alterusersysidentifiedbymanager;或者改成其他的你自己容易记住的默认scott用户密码是tiger分页查询中的rownum可以方便删除重复记录等各种方便查询21.oralce解锁步骤先使用system登录然后输入alteruserscottaccountunlock;//解锁scott账号SQL语句必须带分号!!!!!!!!!!!!!最好都分号结束32.oralce开发工具sqlpulsw和sqlus工具在开始→程序→oracleoradb_home10g→applicationdevelopment→sqlplus或在运行栏输入sqlpluspl/sqldeveloper这款软件用的很多第三方软件需要单独安装企业管理器(web)首先保证相关服务启动即oracleDBconsole+实例名启动在浏览器中输入http://ip:1158//emip是指你的具体ip地址或者你的机器名1158是端口一般情况下这个服务是不启动很不安全43.oracle常用sqlplus命令(1)请使用scott用户登录oracle数据库实例,然后切换为身份为system简单使用conn用户名/密码登录后,使用conn[ect]用户名/密码@网络[assysdba/sysoper](2)showuser显示当前用户名(3)断开连接disc[onnect](4)exit断开连接和退出sqlplus窗口(5)修改密码(前提是system或sys用户)passw[ord]基本用法password用户名如果给自己修改密码则可以不带用户名如果给别人修改密码则需要带用户名(6)&交互命令可以替代变量的值select*fromempwherejob=”&job”;(7)edit用于编辑脚本(文本)SQLeditd:\(8)spool把屏幕上显示的记录,保存到文件中spoolonspoold:/bak.sql查询语句spooloff(9)linesize用户控制每行显示多少个字符,默认80个字符每次都要重新设置基本用法:setlinesize120(10)pagesize用于每页显示多少行基本用法:setpagesize10054.oracle用户管理(1)创建用户只有具有DBA权限才能创建比如systemsys基本用法:createuser用户名identifiedby密码举例:createuserxiaoqiangidentifiedbyhao200881037[oracle要求用户密码不能用数字开头]后面我将密码修改为了200881037?为什么创建的用户无法登陆这是因为oracle刚刚创建的用户是没有任何权限,需要管理员给用户分配适应的权限,才能够登陆grantcreatesessiontoxiaoqiang//会话权限(1)权限系统权限:和数据库管理相关的权限:createsession;createtable;createindex;createview;createsequence;createtrigger对象权限:和用户操作数据对象相关的权限:update;insert;delete;select(2)角色预定义角色:把常用的权限集中起来,形成角色(套餐)比如dbaconnectresource三种角色自定义角色:自己定义套餐(3)方案(schema)在一个数据库实例下:当一个用户,创建好后,如果该用户创建了任意一个数据对象(表或触发器等),这时我们的DBMS就会创建一个对应的方案与该用户对应,并且该方案名字和用户名一致。小技巧:如果希望看到某个用户的方案的数据对象,可以使用PL/SQLdeveloper工具6案例1:完成一个功能;让xiaoqiang用户去查询scott的emp表步骤1:先用scott登录connscott/tiger步骤2:在scott账号上给xiaoqiang赋权限grantselect[update|delete|insert|all]onemptoxiaoqiang这里就可以看出来方案A和方案B可以有相同名的数据库,但是方案A中不可以有相同名的数据库步骤3:登录xiaoqiang用户去查询emp表错误用法:select*fromemp原因是在xiaoqiang登录状态下需要制定emp表来自哪里?正确用法:select*fromscott.emp;查询时如果查询其他方案一定要用带上其他方案名。如果不带,就默认是select*fromxiaoqiang.emp案例2:完成一个功能想办法将xiaoqiang拥有的对scott.emp的权限转给stu用户。scott—xiaoqiang—stu[权限转移]connscott/tiger;grantallonscott.emptostuwithgrantoption;//withgrantoption对象权限表示得到权限的用户可以把权限继续分配//withadminoption系统权限如果是系统权限,则带withadminiption创建了普通账户xiaoqiang密码hao200881037修改密码(前提是system或sys用户)passw[ord]基本用法password用户名如果给自己修改密码则可以不带用户名如果给别人修改密码则需要带用户名7表空间:表存在的空间,一个表空间就是指向具体的数据文件(4)用户管理的综合案例创建的新用户是没有任何权限的,甚至连登录(会话)的数据库的权限都没有,需要为其指定响应的权限,给一个用户赋权限使用命令grant,回收权限revokegrant权限/角色to用户(1)使用system创建xiaoqiang后面我将密码修改为了200881037(2)使用system给小红分配2个常用角色grantconnecttoxiaoqianggrantresourcetoxiaoqiangdisconn//切断连接(3)让xiaoqiang登录connxiaoqiang/200881037(4)xiaoqiang修改密码pasw[ord]xiaoqiang即可然要求你输入旧密码当然超级管理员不需要输入旧密码(5)xiaohong创建一张最简单的表(6)使用system登录,然后回收角色。revokeconnectfromxiaoqiangrevokeresourcefromxiaoqiang(7)删除xiaoqiang用户:dropuser用户名[cascade]☞当我们删除一个用户的时候,若这个用户自己已经创建了数据对象(表、触发器等),需要加选项cascade表示把这个用户删除同时,把该用户创建的数据对象一并删除。否则无法删除该用户,oracle用户认为删除了该用户就彻底抛弃了8(5)账号锁定使用profile管理用户口令,账号锁定指用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用DBA的身份去执行该命令。profile文件[规则]eg:createprofilelock_accountlimitfailed_login_attempts3paswword_lock_time2;alteruserteaprofilelock_account;//其中lock_account是文件名(6)账号解锁alteruser用户名accountunlock;(7)终止口令eg:给tea创建一个profile文件,要求该用户每隔10天必须修改自家的登录密码,款限期为2天。createprofilemyprofilelimitpassword_life_time10password_grace_time2;//可以继续加限制条件alteruserteaprofilemyprofile;(8)删除profile文件当不需要某个profile文件时,可以删除该文件。dropprofileprofile文件名。95.oracle数据库启动流程oracle可以通过命令行的方式启动,我们看看具体如何操作:windows下:(1)lsnrctlstart(启动监听)(2)oradim–startup–sid数据库实例名linux下:(1)lsnrctlstart(启动监听)(2)sqlplussys/chang_on_installassysdba(以sysdba身份登录)sqlplus/nologconnsys/chang_on_installassysdba(3)startup106.oracle登录认证方式oracle在windows和linux下是不完全相同的:windows下:如果当前用户属于本地操作系统的ora_dba组(对于windows操作系统而言),即可通过操作系统认证。普通用户:默认是以数据库方式认证,比如connscott/tiger;特权用户:默认是以操作系统认证(即:只要当前用户是在ora_dba组中则可以通过认证),比如connsystem/managerassysdba;DBMS一看到assysdba则认为要以特权用户登录,前面的用户名和密码不看,登录后自动切换成sys用户=connsys/manager。如果当前用户(win7系统账号)不在ora_dba组中,connsys/manager输对了密码还是可以登录进去的(这时是采用了数据库方式验证)sqlnet.ora文件在D:\xiaoqiang\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下:同时如果你安装第三方工具PL/SQLDeveloper,同时也需要修改D:\xiaoqiang\oracle\product\instantclient_11_2目录下的sqlnet.ora文件通过配置sqlnet.ora文件,可以修改oracle登录认证方式:SQLNET.AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证SQLNET.AUTHENTICATION_SERVICES=(NONE)是基于Oracle验证SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)是二者共存linux下:默认情况下linux下