Доступ к SQL Server с помощью C # с общими учетными данными

#c# #sql #sql-server

#c# #sql #sql-server

Вопрос:

У меня есть общий пользователь (имя пользователя: пользователь и пароль: пользователь), который имеет доступ к моей базе данных SQL. Итак, если я использую следующий код, я могу получить к нему доступ без проблем:

 using System.Data.SqlClient;

namespace ConsoleApp1
{
    Class Program
    {
        static void Main(string[] args)
        {
            string conString = "Data source=server; Initial catalog=db; Integrated security=true";
            SqlConnection conn = new SqlConnection(conString);
            using (conn)
            {
                conn.Open();
                SqlCommand command = new SqlCommand("SELECT * FROM Table", conn);
                SqlDataReader reader = command.ExecuteReader();
                conn.Close();
            }
        }
    }

}
  

Однако, если я изменю ограничение, заменив IntegratedSecurity=true на User ID=user; Password=user , тогда у меня будет исключение

 System.Data.SqlClient.SqlException:'Login failed for user 'user'.'
  

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

Комментарии:

1. Если вы отключите интегрированную безопасность, она перестанет использовать учетные данные Windows, и вместо этого вам придется настроить конкретную учетную запись пользователя в самом SQL Server.

2. Ps. Чтобы было ясно, вы не можете использовать интегрированную защиту для входа в систему от имени другого пользователя Windows, отличного от того, под которым выполняется код (на всякий случай, на это вы надеетесь)

3. Некоторые визуальные подсказки здесь: guru99.com/sql-server-create-user.html

4. @PabloD., убедитесь, что сервер настроен на разрешение проверки подлинности SQL (по умолчанию используется только Windows). Проверьте журнал ошибок SQL Server, поскольку в нем будет больше подробностей о том, почему не удалось войти в систему.

5. Встроенная безопасность = true использует учетные данные Windows пользователя, который вошел в систему. Таким образом, вы никогда не используете как Integrate Security = true, так и имя пользователя / пароль.