Подключение к новой базе данных SQL Server 2012 в Coldfusion 11

#sql-server #coldfusion #sql-server-2012 #coldfusion-11

#sql-сервер #coldfusion #sql-server-2012 #coldfusion-11

Вопрос:

У меня есть существующий экземпляр ColdFusion 11 server и SQL Server 2012 на платформе Windows 7 Ultimate.

У меня уже подключено несколько источников данных SQL Server, которые успешно подключены с использованием: localhost SQLEXPRESS, имя пользователя «sa» и мой пароль. Когда я пытаюсь добавить новую базу данных в CF Administrator, я получаю эту ошибку:

Ошибка проверки соединения для источника данных: ocm5 java.sql.SQLInvalidAuthorizationSpecException: [Macromedia] [Драйвер JDBC SQLServer] [SQLServer] Не удалось войти в систему для пользователя ‘sa’. Основная причина заключалась в том, что: java.sql.SQLInvalidAuthorizationSpecException: [Macromedia] [Драйвер JDBC SQLServer] [SQLServer] Не удалось войти в систему для пользователя ‘sa’.

Похоже, это проблема входа в систему, а не проблема с подключением, поэтому я не думаю, что это связано с ограничениями источника на платформах разработчиков.

Ответ №1:

В 2012 году или позже вы не сможете использовать «sa» — и вы никогда не должны использовать его в любом случае для настройки источника данных. Это открывает огромный вектор атаки непосредственно на ваши данные и сам ваш сервер.

Вам нужно будет настроить отдельное имя пользователя и пароль и предоставить ему разрешения DBO для вашей БД. Это предоставит доступ только к вашей конкретной базе данных для вашего CF-соединения. Если вы можете, вам следует еще больше сузить разрешения — например, вам действительно нужны разрешения «создать»?

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

1. Это локальная платформа только для сборки и тестирования. Как я уже говорил, у меня есть другие экземпляры msSQL 2012 (и MySQL 5.5), работающие на моем локальном сервере с CF 11, и все они используют «sa». Проблема в том, что я не могу создать новое подключение к базе данных в CF administrator. Что касается разрешений на моей локальной платформе, я просто использую значения по умолчанию и никогда не сталкивался с проблемами.

2. Эта учетная запись имеет самые высокие привилегии и не должна использоваться без очень, очень, очень веской причины. Создать новый логин достаточно просто, как описал Марк выше. Если вы не делаете что-то действительно экзотическое, эти разрешения должны работать вне ворот, и вы можете уменьшить их оттуда. Сказав все это, похоже, что, возможно, вы забыли включить аутентификацию в смешанном режиме? Если это так, любой вход в систему sql Server завершится ошибкой, пока этот режим не будет включен.

3. Да, но более новые версии SQL server (начиная с 2012 года) не позволят использовать sa таким образом. Вам нужно будет настроить другого пользователя. Если вы используете только local и заблокировали доступ только к IP-адресу 127.0.0.1, вы можете настроить пользователя-администратора сервера, но на практике это приводит к хаосу, как сказал Ли.

4. Кроме того, убедитесь, что вы используете стандартное имя пользователя / пароль в смешанном режиме (как упоминал Ли).

5. более новые версии SQL server (начиная с 2012 года) не позволят использовать sa таким образом @MarkAKruger — IIRC, более старые версии просто отключали его, но люди все равно могли обойти его, повторно включив. Из любопытства, вы говорите, что 2012 делает больше, чем просто это? (Я не пробовал и, должно быть, использую неправильные условия поиска, потому что быстрый поиск оказался нулевым ;-).