база данных не отображается в pyodbc, но существует в Sql Server Management Studio [duplicate]

То же самое, я обновляю свой Junit и разрешаю его

org.junit.jupiter:junit-jupiter-api:5.0.0-M6

на

org.junit.jupiter:junit-jupiter-api:5.0.0
4
задан Rocketq 30 January 2016 в 18:15
поделиться

2 ответа

Как оказалось, соответствующая база данных уже была прикреплена к экземпляру SQL Server по умолчанию на локальной машине, поэтому все, что было необходимо для подключения, было

import pyodbc
conn_str = (
    r"Driver={SQL Server Native Client 11.0};"
    r"Server=(local);"
    r"Database=online_banking;"
    r"Trusted_Connection=yes;"
    )
conn = pyodbc.connect(conn_str)

. Было два основных момента путаницы:

Q: Каково имя экземпляра по умолчанию SQL Server?

A: У него его нет.

При обращении к экземпляру SQL Server по имени экземпляр по умолчанию просто идет по имени машины, а с именем instance идентифицируется MachineName\InstanceName. Итак, на сервере с именем PANORAMA

  • Если мы установим «экземпляр по умолчанию» SQL Server, мы будем называть его PANORAMA.
  • Если мы установим «Именованный экземпляр», называемый «SQLEXPRESS», мы называем его PANORAMA\SQLEXPRESS.

Если мы ссылаемся на экземпляр SQL-сервера на локальном компьютере, мы можем использовать (local) вместо PANORAMA.

Q: Do (local) и (localdb) означают одно и то же?

A: NO.

(local) и (local)\InstanceName обратитесь к «реальным» серверным экземплярам SQL Server. Это те экземпляры, которые были с тех пор, как был выпущен SQL Server. Они работают как служба и могут принимать сетевые подключения и выполнять все, что мы ожидаем от сервера базы данных.

(localdb) и (localdb)\InstanceName ссылки & ndash; с (localdb) обычно заглавными как (LocalDB) для ясности & ndash; используются для подключения к экземплярам SQL Server LocalDB. Это временные локальные экземпляры SQL Server, предназначенные прежде всего для разработчиков. Подробнее см. В следующем сообщении в блоге MSDN:

SQL Express v LocalDB v SQL Compact Edition

6
ответ дан Gord Thompson 22 August 2018 в 14:24
поделиться
  • 1
    В идеале вы должны пустить имя машины скорее локально, если оно развернуто для нескольких пользователей. – maSTAShuFu 31 January 2016 в 06:38

Возможно, это проблема безопасности. Вы используете интегрированную систему безопасности, чтобы использовать учетные данные безопасности входа в систему Windows, которые запускаются клиентской программой. Если этот пользователь или группа, к которой принадлежит пользователь, не имеет хотя бы общего доступа к базе данных, она будет выглядеть так, как если бы база данных не существовала. Либо убедитесь, что пользователь или группа, членом которой является пользователь, настроен с именем входа и что у него есть хотя бы общий доступ к вашей базе данных или использование SQL аутентификации сервера и отправить имя пользователя и пароль в строку подключения.

0
ответ дан Brian Pressler 22 August 2018 в 14:24
поделиться
  • 1
    Я не думаю, что проблема связана с проблемой доступа. У моего ПК есть только одна учетная запись и ее я, и я администратор. Или я должен запустить PyCharm в качестве администратора? – Rocketq 30 January 2016 в 08:12
Другие вопросы по тегам:

Похожие вопросы: