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

Подскажите почему вылетает ошибка и как устранить при создании базы 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
Python. Ошибка при создании базы Firebird
    #40125023
uProger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fakel555,

А сама СУБД установлена корректно? Проверяли?
...
Рейтинг: 0 / 0
Python. Ошибка при создании базы Firebird
    #40125056
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да корректно установил. Через командную строку получается сменить пароль 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
Python. Ошибка при создании базы Firebird
    #40125059
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тест 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
Python. Ошибка при создании базы Firebird
    #40125063
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также через 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
Python. Ошибка при создании базы Firebird
    #40125078
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
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
Python. Ошибка при создании базы Firebird
    #40125102
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь, iot

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

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

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

Дополнительно скажу, что сервер и клиент Firebird установлен на Windows 7 и на этой же машине установлен Python.
...
Рейтинг: 0 / 0
Python. Ошибка при создании базы Firebird
    #40125103
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также скажу, через IBExpert получается создать создать новую базу, а через Python нет. Но в дальнейшем с базой созданной через IBExpert получается работать (создавать таблицы и т.д) в Python.
...
Рейтинг: 0 / 0
Python. Ошибка при создании базы Firebird
    #40125104
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
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
Python. Ошибка при создании базы Firebird
    #40125105
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как это сделать?
...
Рейтинг: 0 / 0
Python. Ошибка при создании базы Firebird
    #40125114
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
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
Python. Ошибка при создании базы Firebird
    #40125116
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
Fakel555,
прочитайте пожалуйста раздел
Consider whether Windows administrators should have SYSDBA rights
возможно что-то упустил
...
Рейтинг: 0 / 0
Python. Ошибка при создании базы Firebird
    #40125226
Fakel555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё разобрался в коде 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
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python. Ошибка при создании базы Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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