Гость
Map
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python. Ошибка при создании базы Firebird / 13 сообщений из 13, страница 1 из 1
06.01.2022, 14:18
    #40124963
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Всем привет.

Подскажите почему вылетает ошибка и как устранить при создании базы Firebird

авторfrom firebird.driver import *

# Register Firebird server
srv_cfg = """[local]
host = localhost
user = SYSDBA
password = masterkey
"""
driver_config.register_server('local', srv_cfg)

# Регистрация новой базы данных
db_cfg = """[mydb]
server = local
database = C:\Base\mydb.fdb
protocol = inets
charset = utf8
# create options
page_size = 16384
db_charset = utf8
sweep_interval = 80000
reserve_space = no

"""

# Создаие 'mydb' базы данных(используется когда нет базы)
con = create_database('mydb')

driver_config.register_database('mydb', db_cfg)

При выполнении этого кода выходит ошибка:

авторTraceback (most recent call last):
File "C:\Base\mane.py", line 37, in <module>
con = create_database('mydb')
File "C:\Users\FRA\AppData\Local\Programs\Python\Python38\lib\site-packages\firebird\driver\core.py", line 2183, in create_database
return __make_connection(True, dsn, db_config.utf8filename.value,
File "C:\Users\FRA\AppData\Local\Programs\Python\Python38\lib\site-packages\firebird\driver\core.py", line 2018, in __make_connection
att = provider.create_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
File "C:\Users\FRA\AppData\Local\Programs\Python\Python38\lib\site-packages\firebird\driver\interfaces.py", line 1055, in create_database
self._check()
File "C:\Users\FRA\AppData\Local\Programs\Python\Python38\lib\site-packages\firebird\driver\interfaces.py", line 105, in _check
raise self.__report(DatabaseError, self.status.get_errors())
firebird.driver.types.DatabaseError: Missing security context for C:\BASE\MYDB

Установленый софт

Windows 7 Pro 64bit
Firebird 3.0.8.33535_0_x64
Python 3.8 (библиотека firebird.driver)

Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
06.01.2022, 19:49
    #40125023
uProger
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Fakel555,

А сама СУБД установлена корректно? Проверяли?
...
Рейтинг: 0 / 0
07.01.2022, 00:41
    #40125056
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Да корректно установил. Через командную строку получается сменить пароль SYSDBA. Также в IBExpert получается работать с базами Firebird 3.

В логе firebird.log следующая ошибка:

авторFri Jan 07 00:29:06 2022
Missing security context required for C:\PROGRAM FILES\FIREBIRD\FIREBIRD_3_0\SECURITY3.FDB
Available context(s): USER FRA-PC\FRA plugin Win_Sspi
...
Рейтинг: 0 / 0
07.01.2022, 00:50
    #40125059
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Тест IBExpert

авторAttempting to connect to:
LOCALHOST/3050:C:\Base\bd.fdb... Connected successfully.
Server version: WI-V6.3.8.33535 Firebird 3.0

Disconnecting from database... Passed!

Attempting to connect to services manager:
LOCALHOST/3050:service_mgr... Connected successfully.
...
Рейтинг: 0 / 0
07.01.2022, 01:23
    #40125063
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Также через Python тест проверка версии Firebird

авторfrom firebird.driver import connect

with connect('employee', user='SYSDBA', password='masterkey') as con:
print(f"server_version: '{con.info.server_version}'")
print(f"firebird_version: '{con.info.firebird_version}'")
print(f"version: '{con.info.version}'")
print(f"engine_version: {con.info.engine_version}")

результат:

авторserver_version: 'WI-V6.3.8.33535 Firebird 3.0'
firebird_version: 'WI-V3.0.8.33535 Firebird 3.0'
version: '3.0.8.33535'
engine_version: 3.0
...
Рейтинг: 0 / 0
07.01.2022, 10:09
    #40125078
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Fakel555,

Добрый день,
возможно это поможет

Код: html
1.
Please notice: enabling Win_Sspi on the server activates the plugin but doesn’t grant Windows accounts any type of access to databases yet. Logging in to, say, the employee database without credentials (and making sure no embedded connection is made) will result in this error message:



Код: sql
1.
2.
3.
SQL> connect xnet://employee;
Statement failed, SQLSTATE = 28000
Missing security context for employee



Код: html
1.
2.
3.
In other words: “We know who you are (because the Win_Sspi plugin identified you) but you can’t come in.”

The solution is to create, as SYSDBA, a global mapping that gives any Windows account access to databases&#8201;—&#8201;but no special privileges&#8201;—&#8201;under the same name. This is done with the following command:



Код: sql
1.
2.
3.
create global mapping trusted_auth
using plugin win_sspi
from any user to user
...
Рейтинг: 0 / 0
07.01.2022, 14:08
    #40125102
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Спасибо за помощь, iot

Я может что-то не понимаю, но мне нужно создать новую базу, а не получить к ней доступ.

iotcreate global mapping trusted_auth
using plugin win_sspi
from any user to user

Эта команда как я понимаю для получения доступа.

Дополнительно скажу, что сервер и клиент Firebird установлен на Windows 7 и на этой же машине установлен Python.
...
Рейтинг: 0 / 0
07.01.2022, 14:16
    #40125103
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Также скажу, через IBExpert получается создать создать новую базу, а через Python нет. Но в дальнейшем с базой созданной через IBExpert получается работать (создавать таблицы и т.д) в Python.
...
Рейтинг: 0 / 0
07.01.2022, 14:27
    #40125104
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Fakel555

В логе firebird.log следующая ошибка:
авторFri Jan 07 00:29:06 2022
Missing security context required for C:\PROGRAM FILES\FIREBIRD\FIREBIRD_3_0\SECURITY3.FDB
Available context(s): USER FRA-PC\FRA plugin Win_Sspi

из этого сообщения похоже, что нет доступа к SECURITY3.FDB
возможно необходимо плагину Win_Sspi дать больше прав
...
Рейтинг: 0 / 0
07.01.2022, 14:34
    #40125105
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
А как это сделать?
...
Рейтинг: 0 / 0
07.01.2022, 15:08
    #40125114
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Fakel555,

по той же ссылке пишут
Код: html
1.
To give just one administrator&#8201;—&#8201;or indeed any user&#8201;—&#8201;full SYSDBA power, use this command:



Код: sql
1.
2.
3.
4.
create global mapping frank_sysdba
using plugin win_sspi
from user "sofa\frank"
to user sysdba
...
Рейтинг: 0 / 0
07.01.2022, 15:19
    #40125116
iot
iot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Fakel555,
прочитайте пожалуйста раздел
Consider whether Windows administrators should have SYSDBA rights
возможно что-то упустил
...
Рейтинг: 0 / 0
08.01.2022, 15:37
    #40125226
Fakel555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python. Ошибка при создании базы Firebird
Всё разобрался в коде Python была ошибка. При создании базы не указал user и password

авторfrom firebird.driver import *

# Register Firebird server
srv_cfg = """[local]
host = localhost:3050
user = SYSDBA
password = masterkey
"""

driver_config.register_server('local', srv_cfg)

# Регистрация новой базы данных
db_cfg = """[mydb]
server = local
database = C:\Base\mydb.gdb
user = SYSDBA
password = masterkey

protocol = inet
charset = utf8
# create options
page_size = 16384
db_charset = utf8
sweep_interval = 80000
reserve_space = no
"""

driver_config.register_database('mydb', db_cfg)

# Создаие 'mydb' базы данных(используется когда нет базы)
con = create_database('mydb')

Спасибо iot
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python. Ошибка при создании базы Firebird / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]