在Java程序中使用Oracle外部用户.doc

上传人:marr****208 文档编号:134622481 上传时间:2020-06-07 格式:DOC 页数:5 大小:28.50KB
返回 下载 相关 举报
在Java程序中使用Oracle外部用户.doc_第1页
第1页 / 共5页
在Java程序中使用Oracle外部用户.doc_第2页
第2页 / 共5页
在Java程序中使用Oracle外部用户.doc_第3页
第3页 / 共5页
在Java程序中使用Oracle外部用户.doc_第4页
第4页 / 共5页
在Java程序中使用Oracle外部用户.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《在Java程序中使用Oracle外部用户.doc》由会员分享,可在线阅读,更多相关《在Java程序中使用Oracle外部用户.doc(5页珍藏版)》请在金锄头文库上搜索。

1、教育资源分享在Java程序中使用Oracle外部用户Oracle外部用户(External User)可以访问Oracle数据库,但该用户不需要Oracle密码验证,验证工作交由操作系统来完成。这就意味着,如果用户能通过某一用户名/密码进入操作系统,那么他就有权限访问Oracle数据库。试想,如果一台客户机经常访问Oracle数据库,用户会非常厌烦每一次都要输入同样的用户名和口令。另外,从安全角度考虑,每次输入用户名、口令也不太合适。向Oracle数据库中添加外部用户我们使用ora_serverora_carl (ora_server是数据库所在的机器名,ora_carl是数据库的实例名)为例

2、,来说明在Oracle中如何创建外部用户。我们假定客户端的操作系统为Windows XP,用户名是carlwu,具体步骤如下:1) 在客户机的SQL/Plus中以系统管理员身份登陆SQL conn sys/managerora_carl as sysdba已连接。2)查看参数os_authent_prefix(操作系统验证前缀)参数SQL show parameters os_authent_prefixNAME TYPE VALUE- -os_authent_prefix string OPS$3)创建外部用户carlwu,注意用户名前面要加上步中查出来的os_authent_prefix(

3、操作系统验证前缀)参数值,本例中为ops$。SQL create user ops$carlwu identified externally;用户已创建4)将connect,resource权限赋给该外部用户SQL grant connect to ops$carlwu ;授权成功。SQL exit从Oracle9i Enterprise Edition Release 9.2.0.5.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.5.0 - Produ

4、ction中断开5)在客户机上验证刚才创建的外部用户是否成功,注意在conn后省略了用户名/口令的字样,只剩下/加上实例名。C:Documents and Settingscarlwusqlplus /nologSQL*Plus: Release 9.2.0.5.0 - Production on 星期五 12月 2 16:12:09 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL conn /ora_carl;已连接。恭喜,到现在为止,我们已经成功创建了一个Oracle外部用户。Java程序T

5、estExternalUser.java源代码如下所示,testExternalUser()方法使用外部用户连接Oracle数据库package test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class TestExternalUser /* param args*/public static void main(String

6、args) / TODO Auto-generated method stubTestExternalUser teu = new TestExternalUser();teu.testExternalUser();public void testExternalUser() Connection conn1 = null;try conn1 = getCon();PreparedStatement ps = conn1.prepareStatement(select to_char(sysdate,YYYY-MM-DD HH24:MI:SS) from dual);ResultSet rs

7、= ps.executeQuery();if (rs.next() System.out.println(Database servers date is:+rs.getString(1);rs.close();ps.close(); catch (SQLException sqle) sqle.printStackTrace(); catch (ClassNotFoundException cnf) cnf.printStackTrace();finally closeCon(conn1);/* Get target datbases connection.* * return* throw

8、s ClassNotFoundException* throws SQLException*/private Connection getCon() throws ClassNotFoundException, SQLException Connection con;java.lang.Class.forName(oracle.jdbc.driver.OracleDriver);con = DriverManager.getConnection(jdbc:oracle:oci:/ora_carl);con.setAutoCommit(false);return con;/* Close database connection* */private void closeCon(Connection con) try con.close();con = null; catch (SQLException sqle) sqle.printStackTrace();注意上面代码中红色字体部分Oracle连接串的写法,和普通的Oracle JDBC连接串(jdbc:oracle:thin:user/pwdserver:1521:instance)的不同之处,该连接串中省略了用户名/密码。教育资源分享,构建知识库

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号