Oracle数据库的三种验证机制
在windows操作系统中安装下载版的oracle数据库,只要有操作系统的登陆权限就可以用任意的用户名,密码以sysdba的身份登陆。我想拒绝别人访问,应该怎么解决这个问题?
%oracle_home%\NETWORK\ADMIN
sqlnet.ora中修改
SQLNET.AUTHENTICATION_SERVICES= (NTS)
-->
SQLNET.AUTHENTICATION_SERVICES= (NONE)
Oracle数据库的三种验证机制。 <1>操作系统验证 <2>密码文件验证 <3>数据库验证。你的本机通过了第一种验证机制。
系统安全一直是各个系统关注的首要问题,而用户验证是其中很重要的一环。一般应用程序习惯性地将用户验证放在数据库中,通过比对用户的输入与数据库记录来验证用户,但数据库自身如何来验证呢?ORACLE用户可以分为SYS用户和普通用户,他们的验证方式有所区别
一、SYS用户验证
SYS用户拥有数据库的完全控制权,对其验证显得至关重要。由于进行验证时数据库还不可用,ORACLE采用两种方式来验证SYSDBA用户:操作系统验证和口令文件验证。
1. 操作系统验证
对于在安装Oracle的本机上使用Oracle的情况,Oracle可以将用户验证交给操作系统,只要登录操作系统的用户在DBA组里,就有SYS用户的权限,可以修改 $ORACLE_HOME/dbs/sqlnet.ora,加入如下行:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
操作系统验证具有最高优先级,当设置为他时,口令文件验证不起作用
2. 口令文件验证
要使用口令文件验证,首先得禁用操作系统验证,修改 $ORACLE_HOME/network/admin/sqlnet.ora,加入如下行(这里将$ORACLE_HOME转化为绝对路径):
SQLNET.AUTHENTICATION_SERVICES= (NONE)
其次是设置口令验证配置参数:remote_login_passwordfile,他可以有几个值,其含义如下
-- none 不使用口令验证
-- exclusive 仅允许一个实例使用该口令文件
--shared 多个实例可以共用一个口令文件
这里将参数设置为独占:
alter system set remote_login_passwordfile=exclusive scope=spfile;
shutdown immediate
相关文档:
SQL*PLus> desc emp;
名称 &nbs ......
1、在oracle的sys-sysdba下登陆
写一个java source程序链接sqlserver2005:
create or replace and compile java source named test as
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class excutesql1
{
public static String entry ......
自己在做这个程序的时候看过很多的资料,上网也查了不少的资料,可是多半说的是出神入化,云里雾里...不光看了不明白,而且是有明白一点的人,看了也变的有些模糊了。
这里我掩饰一套完整的java jdbc 连接Oracle9i的范例。
package com.lxh.dbcon;//打包
import ......
【51CTO.com独家特稿】面对惊慌的客户和广泛质疑的媒体,Oracle官方最近终于出榜安民,那便是一个以“SUN CUSTOMERS ,Oracle Plans To:”为大标题的广告。直译过来便过来可知道,Oracle将要加大SPARC和Solaris的投入了,而大老板埃里森也向IBM硬件下了战书,声称Oracle将最终赢得这场竞争……
&n ......
一 在Oracle中连接数据库
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
&nbs ......