О подключении к iSQL*Plus как SYSDBA или SYSOPER в Oracle 9i можно почитать здесь.
На http://hostname:5560/isqlplus невозможен доступ под SYSDBA или SYSOPER, если даже в Connect Identifier допишите "as sysdba" после названия базы данных:
ERROR - ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Чтобы подключиться к iSQL*Plus как SYSDBA или SYSOPER, нужно воспользоваться ссылкой http://hostname:5560/isqlplus/dba.
По умолчанию, доступ к этому URL закрыт, а при попытке попасть получите сообщение:
"Для входа на сервер по адресу iSQL*Plus DBA нужны имя пользователя и пароль. ..."
Для того, чтобы разрешить пользователю подключаться URL к iSQL*Plus DBA, нужно с помощью утилиты JAZN (Java AuthoriZatioN):
1) Создать пользователя для iSQL*Plus DBA URL
2) Назначить ему роль webDba
3) Выйти из jazn и при необходимости перегрузить iSQL*Plus.
Запуск утилиты jazn:
D:\>set ORACLE_HOME=D:\oracle\product\10.2.0
D:\>set JAVA_HOME=%ORACLE_HOME%\jdk
D:\>cd %ORACLE_HOME%\oc4j\j2ee\isqlplus\application-deployments\isqlplus
D:\oracle\product\10.2.0\oc4j\j2ee\isqlplus\application-deployments\isqlplus>%JAVA_HOME%\bin\java -Djava.security.properties=%ORACLE_HOME%\oc4j\j2ee\home\config\jazn.security.props -jar %ORACLE_HOME%\oc4j\j2ee\home\jazn.jar -user "iSQL*Plus DBA\admin" -password welcome -shell
JAZN:>
В unix среде команды аналогичные, только нужно заменить % на $, set на export, и слэши.JAZN:> adduser "iSQL*Plus DBA" urldba urlpasswd
JAZN:>
JAZN:> listusers
iSQL*Plus DBA/admin
iSQL*Plus DBA/urldba
JAZN:>
JAZN:> grantrole webDba "iSQL*Plus DBA" urldba
JAZN:> exit
Тепер, при входе в http://hostname:5560/isqlplus/dba можно ввести логин (urladmin) и пароль пользователя (urlpasswd) и попасть в iSQL*Plus DBA URL, где есть возможность подключиться к базе данных как SYSDBA и SYSOPER.
18 коммент.:
при выполнении команды cd %ORACLE_HOME%\oc4j\....
выдается сообщение:системе не удается найти указанный путь.
Как исправить ошибку???
Какая у вас версия Oracle?
Скорее всего 9i, в Oracle 9i используется стандартная утилита htpasswd - для добавления пользователя для базовой аутентификации:
$ORACLE_HOME/Apache/Apache/bin/htpasswd -b $ORACLE_HOME/sqlplus/admin/iplusdba.pw username password
Или же можно вообще отключить базовую аутентификацию для http://hostname:7776/isqlplusdba закомментировав 4 строчки в ORACLE_HOME/sqlplus/admin/isqlplus.conf:
<Location /isqlplusdba>
SetHandler fastcgi-script
Order deny,allow
#AuthType Basic
#AuthName 'iSQL*Plus DBA'
#AuthUserFile /testdb/u01/app/oracle/product/9.2.0.8.0/sqlplus/admin/iplusdba.pw
#Require valid-user
</Location>
Версия Oracle 10!!!
может он просто не видит переменные среды, созданные set-ом??
или может надо прописать полный путь(%ORACLE_HOME%\oracle\product...oc4j\..)
А можно ли в oracle 10 закомментровать аутентификацию?
>... или может надо прописать полный путь(%ORACLE_HOME%\oracle\product...oc4j\..)
папка oc4j у вас находится в папке %ORACLE_HOME%\oracle\product? по идее она должна быть в ORACLE_HOME.
Думаю, вам нужно либо ORACLE_HOME исправить, либо указывать полные пути.
В Oracle 10g http server видимо написан на Java, и настройки тоже сильно отличаются от Apache. Отключить базовую аутентификацию можно, но используйте этот способ на свой риск и страх (Oracle нигде не документирует, как отключить в 10g):
в файле ORACLE_HOME\oc4j\j2ee\oc4j_applications\applications\isqlplus\isqlplus\WEB-INF\web.xml удалите такие строчки (строчки 165-191):
<security-constraint>
<web-resource-collection>
<web-resource-name>dba.uix</web-resource-name>
<description>
</description>
<url-pattern>/dba.uix</url-pattern>
<url-pattern>/dbA.uix</url-pattern>
<url-pattern>/dBa.uix</url-pattern>
<url-pattern>/dBA.uix</url-pattern>
<url-pattern>/Dba.uix</url-pattern>
<url-pattern>/DbA.uix</url-pattern>
<url-pattern>/DBa.uix</url-pattern>
<url-pattern>/DBA.uix</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>DynamicDba</web-resource-name>
<description>
</description>
<url-pattern>/dba/dynamic</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>webDba</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
После перегруза iSQL*Plus уже не будет запрашивать логин и пароль.
isqlplus stop
isqlplus start
папка oc4j находится в db_3!полный путь таков:D:\oracle\product\10.2.0\db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplus
Никакой папки ORACLE_HOME у меня нет)))))
Тогда как прописать запуск isql???
Вы пишите ->
D:\oracle\product\10.2.0\oc4j\j2ee\isqlplus\application-deployments\isqlplus>%JAVA_HOME%\bin
У меня нет папки bin, у меня следующее:
D:\oracle\product\10.2.0\db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplus\config
а, в папке config пусто!!!!!????
JAVA_HOME - это имеется exe-файл???
То у меня следующее:
D:\oracle\product\10.2.0\db_3\jdk\bin\java.
Тогда мне его запускать?
ORACLE_HOME и JAVA_HOME - это переменные среды, ORACLE_HOME - указывает на папку, где установлен ORACLE, а JAVA_HOME:
"$JAVA_HOME is the location of your JDK (1.4 or above). It should be set to $ORACLE_HOME/jdk, but you may use another JDK."
Эти переменные и устанавливаются на первых 2 строчках:
D:\>set ORACLE_HOME=D:\oracle\product\10.2.0
D:\>set JAVA_HOME=%ORACLE_HOME%\jdk
>> полный путь таков:D:\oracle\product\10.2.0\db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplus
Судя по пути, переменная среды ORACLE_HOME у вас D:\oracle\product\10.2.0\db_3,
а JAVA_HOME =D:\oracle\product\10.2.0\db_3\jdk
>> Вы пишите ->
D:\oracle\product\10.2.0\oc4j\j2ee\isqlplus\application-deployments\isqlplus>%JAVA_HOME%\bin
D:\oracle\product\10.2.0\oc4j\j2ee\isqlplus\application-deployments\isqlplus> - это command prompt, а сама команда начинается с %JAVA_HOME%\bin, можно и полный путь указывать везде.
Приятного дня!
*** команда начинается с %JAVA_HOME%\bin\java
Да, вы правы в %JAVA_HOME%\bin и должен лежать java.exe, его и нужно запускать.
У меня получилось следующее:
D:\>set ORACLE_HOME=D:\oracle\product\10.2.0\db_3
D:\>set JAVA_HOME=D:\oracle\product\10.2.0\db_3\jdk\bin\java
D:\>cd %ORACLE_HOME%\oc4j\j2ee\isqlplus\application-deployments\isqlplus
D:\oracle\product\10.2.0\db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplu
s>%ORACLE_HOME%\bin\java-Djava.security.properties=%ORACLE_HOME%\oc4j\j2ee\home\
jazn.jar -user "iSQL*Plus DBA\admin" -1234 welcome -shell
"D:\oracle\product\10.2.0\db_3\bin\java-Djava.security.properties" не является в
нутренней или внешней
командой, исполняемой программой или пакетным файлом.
"D:\oracle\product\10.2.0\db_3\bin\java-Djava.security.properties"
между ...\java и -Djava... есть пробел, и "-password" не нужно менять на "-1234",
вместо "%ORACLE_HOME%\bin\java" нужно "%JAVA_HOME%\bin\java"
Запустите следующее как есть, ничего не меняя:)
set ORACLE_HOME=D:\oracle\product\10.2.0\db_3
set JAVA_HOME=D:\oracle\product\10.2.0\db_3\jdk
cd %ORACLE_HOME%\oc4j\j2ee\isqlplus\application-deployments\isqlplus
следующее в одной строчке:
%JAVA_HOME%\bin\java -Djava.security.properties=%ORACLE_HOME%\oc4j\j2ee\home\config\jazn.security.props -jar %ORACLE_HOME%\oc4j\j2ee\home\jazn.jar -user "iSQL*Plus DBA\admin" -password welcome -shell
конец строки
Если будет ошибка "User does not exist in system", попробуйте заменить слэш в "iSQL*Plus DBA\admin" на "iSQL*Plus DBA/admin".
Надеюсь получится)
произошла ошибка "User does not exist in system"!!!
А заменив слэш в "iSQL*Plus DBA\admin" на "iSQL*Plus DBA/admin" получилось ->
D:\oracle\product\10.2.0\db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplu
s>%JAVA_HOME%\bin\java -Djava.security.properties=%ORACLE_HOME%\oc4j\j2ee\home\c
onfig\jazn.security.props -jar %ORACLE_HOME%\oc4j\j2ee\home\jazn.jar -user "iSQL
*Plus DBA/admin" -password welcome -shell
Realm [iSQL*Plus DBA] does not exist in system!!!!!!!!!!
Откройте файл ORACLE_HOME\oc4j\j2ee\isqlplus\application-deployments\isqlplus\config\jazn-data.xml,
и найдите тэги <realm-name> и в них тэг <name> и скиньте их сюда. Например:
<realm-name>iSQL*Plus DBA</realm-name>
<type>role</type>
<class>oracle.security.jazn.spi.xml.XMLRealmRole</class>
<name>iSQL*Plus DBA/admin</name>
В db_3\oc4j\j2ee\isqlplus\application-deployments\isqlplus\config\(пусто!)
файл jazn-data.xml отсутствует.
jazn-data.xml - методом поиска удалось найти D:\oracle\product\10.2.0\univ\oc4j\j2ee\isqlplus\config\jazn-data.xml - но не в db_3(ORACLE_HOME),а как видно в UNIV!!!!
Выложить?
ага, выложите сюда
скорее всего в D:\oracle\product\10.2.0\univ\oc4j\j2ee\isqlplus\config\jazn-data.xml не окажется того, что нужно....
belokon, я думаю, вам нужно разобраться с установками Oracle, видимо у вас несколько установок Oracle, и возможно есть и клиентская и серверная установки.
К сожаления, дальше не могу ничем помочь.
Удачи вам!
Выполнил все подготовительные процедуры для подключения к EM только вот войти не могу-вхожу как SYSDBA с именем пользователя HR -а вот какой пароль незнаю,какие еще параметры нужно проверить?
Отправить комментарий