Ошибка входа в систему при подключении к серверу SQL - PullRequest
0 голосов
/ 05 августа 2020

Я не могу подключиться к одной из баз данных на нашем рабочем сервере. Возможность подключения к одному БД, но не к другому (оба размещены на одном сервере). Подключение через C#. Net Framework Application. Вот настройка.

  • Имя сервера: MYSQLSERVER
  • База данных 1: mydb1
  • База данных 2: mydb2
//connection string for mydb1: 

string connectionString1 = "Data Source=MYSQLSERVER;Initial Catalog=mydb1;Integrated Security=SSPI" //(able to connect to mydb1)

//connection string for mydb2: 

string connectionString2 = "Data Source=MYSQLSERVER;Initial Catalog=mydb2;Integrated Security=SSPI" //(unable to connect to mydb2)

//Connect and open mydb1:

    using (SqlConnection connection = new SqlConnection(connectionString1))
    { 
        SqlCommand command = new SqlCommand("SELECT TOP 10 * FROM sometable", connection);
        command.Connection.Open();  //Success
    }

//Connect and open mydb2:

    using (SqlConnection connection = new SqlConnection(connectionString2))
    { 
        SqlCommand command = new SqlCommand("SELECT TOP 10 * FROM sometable", connection);
        command.Connection.Open();  //Failure
    }

Для журнала ошибок myDb2 указано следующее:

System.Data.SqlClient.SqlException (0x80131904): невозможно открыть базу данных mydb2, запрошенную при входе в систему. Не удалось войти в систему. Ошибка входа для пользователя 'user'

Номер ошибки: 4060, Состояние: 1, Класс: 11

Я предполагаю, что проблема не в коде, а в каком-то настройка в SQL Server для mydb2 (потому что я могу подключиться к mydb1 с точно такими же настройками строки подключения).

Я проверил «Свойства подключения» в SQL Server Management Studio (щелкните правой кнопкой мыши db> Свойства > Просмотр свойств соединения) и в разделе «Проверка подлинности»> «Метод проверки подлинности» имеют значение «Windows Проверка подлинности», а для имени пользователя установлено мое имя пользователя. Кроме того, все остальные настройки в этих свойствах подключения точно такие же между mydb1 и mydb2.

Я новичок, когда дело касается SQL сервера, особенно играю с настройкой аутентификации.

Любые указания ценится.

1 Ответ

0 голосов
/ 05 августа 2020

Ваша проблема не в вашем коде. Вам необходимо проверить безопасность входа в базу данных. Откройте Microsoft Server Management Studio и попробуйте войти на сервер базы данных с теми же учетными данными, которые вы используете для подключения к базе данных в своем приложении. Убедитесь, что у вас выбран сервер и для аутентификации установлено значение SQL Server Authentication (или как вы обычно подключаетесь к серверу). Если он выполняет вход в систему, значит, ваше имя пользователя и пароль, которые вы используете для подключения в вашем приложении, неверны. Проверьте переменные строки подключения. Если он не входит в систему, вам нужно будет создать нового пользователя с привилегиями для доступа ко второй базе данных «mydb2». Просто для справки. Каждой созданной базе данных на сервере требуются свои привилегии пользователя.

введите описание изображения здесь

...