0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 1
|
|
1 | |
Подключение к базе Oracle через ODBC12.08.2020, 15:14. Показов 5277. Ответов 13
Метки нет (Все метки)
Нужно подключиться к базе Oracle из другой системы, в частности 1С. Через sqlplus соединяется. При соединении через ODBC ведет себя как-то странно. Есть две одинаковые копии базы 1с, вход под одним пользователем на одном компьютере. Одной и той же обработкой идет подключение к Oracle, в одной подключается, в другой выдает ошибку [Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified
Как можно узнать в чем причина ошибки? Где можно посмотреть в чем разница этих двух соединений?
0
|
12.08.2020, 15:14 | |
Ответы с готовыми решениями:
13
Конфигурация Oracle Client19 и проблема подключение к базе через sql_plus Подключение к Oracle из ASP без ODBC Ошибка подключения к базе Oracle DB Express 11g через Oracle Data Integrator SQL-запрос к Oracle из Excel через ODBC |
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
03.03.2021, 17:20 | 2 |
Есть Oracle DB Developer VM (на SE Linux), т.е тестовая сборка, которую запускаю на VirtualBox. В ней запущено Oracle Database 19C. Базовый пользователь "system". На виртуалке работа ведется на Oracle SQL Developer.
На физической машине стоит Windows7 PRO и сервис Oracle ODBC 8 (плюс дополнительные компоненты). Версия 8 установлена потому, что 9 в принципе не работает под win7. Первоочередная задача - через Oracle SQL Developer создать пользователя с базовыми правами работы с таблицами через удаленное соединение через ODBC, потому что с пользователем system работа через odbc возможна, ошибок не возникает, но нужно иметь своего и без административных прав. Созданный пользователь в разных комбинациях, через штатный мастер, SQL Developer, виден только на виртуалке. Огромная просьба не И тоже самое с таблицами. Отчего-то стандартное создание таблицы не дает возможности увидеть ее через удаленное соединение даже под пользователем system (select * from user_tables из-под odbc выводит все служебные таблицы, но только не ее, select * from "table" дает ошибку - нет такой таблицы) тогда как под SQL Developer она присутствует в результате запроса. Назначение Grants пользователю "system" для этой таблицы видимого эффекта не принесло. Также просьба пошаговое решение показать.
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
04.03.2021, 09:03 | 3 |
Совсем не обязательно. Большинство работает через Oracle Client, а не через ODBC.
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
04.03.2021, 12:07 | 4 |
в ODBC - одни и те-же. Мне нужно, чтобы и пользователь и таблица были видны ЗА ПРЕДЕЛАМИ сервера. То, что идет в комплекте с дистрибутивом уже настроено и работоспособно, и через Oracle Client и через ODBC- это уже доказано. Если есть решение для Oracle Client, с радостью его посмотрю.
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
04.03.2021, 12:17 | 5 |
Что понимается под решением?
Добавлено через 1 минуту Разрешения отрабатываются сервером. Даже если GRANT выдан с клиента, его все равно отрабатывает (и потом отслеживает выполнение) именно сервер.
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
04.03.2021, 13:55 | 6 |
Задача 1: создание пользователя, видного за пределами сервера. Т.е чтобы можно было подсоединиться к серверу под этим пользователем с УДАЛЕННОЙ машины.
Задача 2: создание таблицы, видимой за пределами сервера. Т.е чтобы можно было подключиться пользователем, созданным задачей 1 к серверу (по адресу-порту типа 192.168.0.121:1521, т.е обычным способом, в пределах локальной сети) и добавить в эту таблицу строки и выбрать из нее. Для выполнения обеих задач у меня есть Oracle SQL Developer, установленный на виртуалке, где и крутится сам Oracle DataBase. Есть sqlcl. Т.е создавать и пользователя и таблицу на локальном хосте. Заходить могу туда под предустановленным пользователем system (могу, конечно ошибаться, но предполагаю, что все права доступа у этого пользователя есть). Решение 1 что-то типа CREATE USER t_user IDENTIFIED BY PASSWORD итд; GRANT ... ? и что-то еще? Решение 2 что-то типа CREATE TABLE test_table .... GRANT ...
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
04.03.2021, 14:37 | 7 |
Сообщение от Borjomy
Как раз system не самый привилегированный пользователь. Есть пользователь sys, который имеет привилегию sysdba. А для текущей высокопривилегированной работы создают какого-то пользователя и выдают ему роль DBA. Для того, чтобы пользователь мог хотя бы подключиться к БД, он должен иметь привилегию CREATE SESSION. Но обычно для простоты пользователю выдают роли CONNECT и RESOURCE, которые в том числе включают CREATE SESSION Для того, чтобы пользователь мог работать со своей таблицей (расположенной в его схеме), никаких доп. привилегий ему не нужно. Если пользователю нужно выполнять SELECT к таблице из другой схемы, ему нужно выдать GRANT SELECT на эту таблицу. Кроме того, к таблице нужно обращаться не FROM tab1, а FROM schema1.tab1, т.е. перед именем таблицы д.б. в качестве префикса имя схемы. Альтернатива - создать приватный или PUBLIC SYNONYM на этот объект
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
04.03.2021, 14:56 | 8 |
Так сложно примерные скрипты написать???? Чтобы убедиться, что это работает! Или я переписываюсь с человеком, который нихрена не знает, но пытается поднять карму на постах?
Как может пользователь работать со своей таблицей удаленно, если ODBC коннект его даже НЕ ВИДИТ??????? пользователя system видит, а t_user - не видит. Коннект в Oracle SQL Developer c пользователем t_user создается, т.е пользователь существует. Значит t_user создан с неправильными атрибутами. КАК ПРАВИЛЬНО?
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
04.03.2021, 15:21 | 9 |
C Oracle через ODBC работал последний раз 20 лет назад (из программы на Power Builder), поэтому ньюансов не помню. Хотя если бы понадобилось, достаточно было бы почитать доку. Через Oracle Client работаю постоянно, никаких проблем с работой с удаленного компа нет.
Нет такого понятия. Либо неверно настроен ODBC (что скорее всего), либо пользователю не хватает прав. Про необходимые права со стороны Oracle я уже сказал. PS Если ты не умеешь администрировать Oracle, то проще нанять DBA, хотя бы приходящего, иначе проблемы будут возникать постоянно. Добавлено через 1 минуту Хех... А зачем мне это надо? За это денег не платят.
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
04.03.2021, 15:42 | 10 |
назначил роли в коннекте sys@//localhost:1521/orcl, раздел Other Users/t_user ПКМ "Edit User..." Далее вкладка System Privilegies, строка CREATE SESSION, флажки и Granted и Admin установил
Вкладка Granted Roles - установлены все флажки по столбцам "Granted", "Admin", "default" Через ODBC пользователя t_user не видит (ни в режиме теста, ни в ПО) У меня НИОКР и ради элементарного вопроса кого-то нанимать?... Добавлено через 10 минут в ODBC настраивать нечего. Там ничего нет. Только TNS Service Name (а это просто IP и порт) и User ID. Заполняешь эти поля и нажимаешь кнопку Test Connection. Спрашивает все вышеперечисленное + пароль. Вводишь пароль и выпадает ответ - все хорошо или ошибка. С пользователем system все проходит, с sys - ругается на привилегии пользователя (т.е видит его). А вот с t_user - ошибка пользователя/пароль (SQLState=28000, [Oracle][ODBC][Ora]ORA-01017. Пароль сложно несколько раз ввести с ошибкой.
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
||||||
04.03.2021, 15:57 | 11 | |||||
1. Если версия Oracle 12 и выше, то пароль регистрозависимый.
2. Если есть сомнения в пароле, то его всегда можно поменять через ALTER USER 3. Кто мешает установить на удаленный комп Oracle Client и попробовать через него? Это мне ни о чем не говорит. Роли назначаются через GRANT
Как ты определяешь, что вопрос элементарный, если сам на него ответа не знаешь?
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
04.03.2021, 17:08 | 12 |
Короче, выкристаллизовывается ощущение, что данная версия сервера принципиально не дает доступа снаружи для вновь созданных таблиц и пользователей.
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
05.03.2021, 09:03 | 13 |
Ты не огласил версию сервера. Но вообще СУБД, которая не дает подключиться к серверу по сети, нафиг никому не нужна.
0
|
0 / 0 / 0
Регистрация: 01.03.2021
Сообщений: 8
|
|
05.03.2021, 15:45 | 14 |
Описание: Данная виртуальная машина применяется на практических занятиях для изучения новых возможностей СУБД Oracle 19c.
Oracle Technology Network Developer Day - Hands-on Database Application Development lab Эта виртуальная машина выложена для свободного скачивания на сайте Oracle (в формате Virtual Box): https://www.oracle.com/technet... 61299.html В состав релиза вошли: ОС - Oracle Enterprise Linux 7.6 x86-64 Oracle Database 19с Enterprise Edition for Linux x86-64 - 12.2.0.3 Oracle XML DB Oracle JSON Oracle SQL Developer Oracle SQL Developer Data Modeler Oracle Application Express 18.3 - настроенное бесплатное средство разработки Web-приложений от производителя, полную информацию можно почерпнуть здесь: http://otn.oracle.com/apex Hands-On-Labs (accessed via the Toolbar Menu in Firefox) - методички для выполнения лабораторных работ Назначение: Для обучения разработчиков приложений для СУБД Oracle 19c (12.2.0.3). Добавлено через 4 часа 20 минут Не все сборки одинаково полезны. Под другой сборкой Описание:: В состав релиза вошли: Oracle Enterprise Linux 7.8 x64 (полная бесплатная копия RHEL 7.8) Oracle Database 19c (12.2.0.3) Enterprise Edition for Linux x64 Oracle Enterprise Manager Express - Средство администрирования СУБД Oracle Oracle Application Express 20.1 - настроенное бесплатное средство разработки Web-приложений от производителя, полную информацию можно почерпнуть здесь: http://otn.oracle.com/apex Oracle Enterprise Manager Express - средство администрирования СУБД SQL Developer 19.1 - средство разработки для СУБД Oracle Database И пользователь и таблицы были созданы с первого (почти) раза так, чтобы были доступны удаленно. Выводы: оригинальный учебный вариант сервера поставляется в урезанном варианте.
0
|
05.03.2021, 15:45 | |
05.03.2021, 15:45 | |
Помогаю со студенческими работами здесь
14
Подключение к удалённой базе oracle Подключение к базе данным MSSQL через ODBC Подключение к базе Odbc сервер SQL запрос к Oracle из Excel через ODBC Подключение к базе oracle Подключение к удалённой базе oracle Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |