Persist security info true что это
Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6
После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.
Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:
При использовании различных систем управления базами данных, различных провайдеров данных .NET строка подключения может отличаться. Даже для подключения одной и той же базы данных строка подключения может меняться в зависимости от обстоятельств.
Строка подключения представляет набор параметров в виде пар ключ=значение . В данном случае для подключения к ранее созданной базе данных usersdb мы определяем строку подключения из трех параметров:
Data Source : указывает на название сервера. По умолчанию это «.\SQLEXPRESS». Поскольку в строке используется слеш, то в начале строки ставится символ @. Если имя сервера базы данных отличается, то соответственно его и надо использовать.
Initial Catalog : указывает на название базы данных на сервере
Integrated Security : устанавливает проверку подлинности
Жесткое кодирование строки подключения (то есть ее определение в коде приложения), как правило, редко используется. Гораздо более гибкий путь представляет определение ее в специальных конфигурационных файлах приложения. В проектах десктопных приложений это файл App.config , а в веб-приложениях это в основном файл Web.config . Хотя приложение также может использовать другие способы определения конфигурации.
В нашем случае, так как мы создали проект консольного приложения, то у нас в проекте должен быть файл App.config, который на данный момент имеет следующее определение:
Изменим его, добавив определение строки подключения:
Для определения всех подключений в программе в пределах узла <configuration> добавляется новый узел <connectionStrings> . В этом узле определяются строки подключения с помощью элемента <add> . Мы можем использовать в приложении множество строк подключения, и соответственно также в файле можно определить множество элементов <add> .
Каждая строка подключения имеет название, определяемое с помощью атрибута name . В данном случае строка подключения называется «DefaultConnection». Название может быть произвольное.
Атрибут connectionString собственно хранит строку подключения, то есть весь тот текст, который мы выше определяли в методе Main. И третий атрибут providerName задает пространство имен провайдера данных. Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.
Теперь получим эту строку подключения в приложении:
Прежде всего чтобы работать с конфигурацией приложения, нам надо добавить в проект библиотеку System.Configuration.dll .
С помощью объекта ConfigurationManager.ConnectionStrings[«название_строки_подключения»] мы можем получить строку подключения и использовать ее в приложении.
Параметры строки подключения
Application Name : название приложения. Может принимать в качестве значения любую строку. Значение по умолчанию: «.Net SqlClient Data Provide»
AttachDBFileName : хранит полный путь к прикрепляемой базе данных
Connect Timeout : временной период в секундах, через который ожидается установка подключения. Принимает одно из значений из интервала 0–32767. По умолчанию равно 15.
В качестве альтернативного названия параметра может использоваться Connection Timeout
Data Source : название экземпляра SQL Servera, с которым будет идти взаимодействие. Это может быть название локального сервера, например, «EUGENEPC/SQLEXPRESS», либо сетевой адрес.
В качестве альтернативного названия параметра можно использовать Server , Address , Addr и NetworkAddress
Encrypt : устанавливает шифрование SSL при подключении. Может принимать значения true , false , yes и no . По умолчанию значение false
Initial Catalog : хранит имя базы данных
В качестве альтернативного названия параметра можно использовать Database
Integrated Security : задает режим аутентификации. Может принимать значения true , false , yes , no и sspi . По умолчанию значение false
В качестве альтернативного названия параметра может использоваться Trusted_Connection
Packet Size : размер сетевого пакета в байтах. Может принимать значение, которое кратно 512. По умолчанию равно 8192
Persist Security Info : указывает, должна ли конфиденциальная информация передаваться обратно при подключении. Может принимать значения true , false , yes и no . По умолчанию значение false
Workstation ID : указывает на рабочую станцию — имя локального компьютера, на котором запущен SQL Server
Password : пароль пользователя
User ID : логин пользователя
Например,если для подключения необходим логин и пароль, то мы можем их передать в строку подключения через параметры user id и password :
Подключение к SQL с Windows авторизацией
Не могу победить проблему. Есть SQL Server 2008 R2 с установленной Win авторизацией. Поставить смешанную авторизацию нельзя по определенным причинам. Мне нужно оттуда смотреть вьюху. Подскажите, умеет ли 1С 8.2 подключаться с скулю с таким режимом авторизации?
В поиске есть устаревшие сведения, что не умеет, но может что-то поменялось уже.
Спасибо!
(6) Вот такая конструкция не работает
СтрокаПодключения = "Provider=SQLOLEDB.1"+
";Persist Security Info=True"
";UID=domain_name\sp_admin"+
";Pwd="+
";Data Source=sql_name\instance_name"+
";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation Encryption for Data=False;Tag with column collation when possible=False;"+
"Initial Catalog=master;";
Подключение = Новый COMОбъект("ADODB.Connection");
Ошибка: Ошибка входа пользователя "domain_name\sp_admin".
User ID
-или-
UID
-или-
Неприменимо
Учетная запись входа SQL Server. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. SqlCredential более безопасный способ определения учетные данные для подключения с использованием проверки подлинности SQL Server.
Длина ИД пользователя должна быть 128 символа или меньше.
Integrated Security
-или-
Trusted_Connection
false
Если задано значение false, в подключении заданы также параметры User ID и Password. Если задано значение true, для проверки подлинности используются текущие учетные данные Windows.
Распознаваемые значения: true, false, yes, no и sspi (настоятельно рекомендуется), что эквивалентно true.
Если ИД пользователя и пароль заданы и встроенные средства безопасности установлено значение "true", ИД пользователя и пароль будут проигнорированы, и использована встроенная безопасность.
(18) Я посмотрел в отладчике, в коллекции Errors появляется ошибка ошибочные параметры, а в строке очищаются User ID и Password. Т.е. ADO молча исправляет эту ошибку.
(17) Ну если так проще, то флаг в руки. Может тогда запустить весь процесс 1С под другим пользователем например через Runas или WMI, через параметры указать, чтобы отработал нужную процедуру, которая дернет скуль?
Русские Блоги
Анализ и подробное объяснение режима подключения к базе данных sql server
Сначала нарисуйте обзорную карту
* Подключение OLEDB
Sql режим аутентификации :Provider="SQLOLEDB;data source=server_name;initial catalog=databasename;uid=username;pwd=password;"
Режим проверки подлинности Windows :ConnectString=”Provider=SQLOLEDB;Data Source=server_name;DataBase=databasename; Integrated Security=SSPI;Persist Security=true”
Примечание. (Эти два метода используются не только для проверки Windows. Integrated Security=SSPI Вместо sql Проверка uid=username;pwd=password Заявление (то есть укажите имя пользователя, пароль инструкции) )
1.Provider=SQLOLEDB : Поставщик — SQLOLEDB (Это исправлено)
Принят интегрированный механизм безопасности SSPI
SSPI Является ли интерфейс поставщика поддержки безопасности (интерфейс поставщика поддержки безопасности Microsoft) SSPI — это более комплексно определенный общедоступный API, используемый для получения интегрированных служб безопасности, таких как аутентификация, целостность информации и конфиденциальность информации, а также безопасность для всех протоколов распределенных приложений .
Настроить интегрированную безопасность Если он имеет значение True, применяется режим проверки подлинности Windows. Только если установлено значение «Ложь» или этот пункт пропущен, для подключения используйте UserID, PWD. Для встроенной безопасности можно задать: True, false, yes, no, а также: sspi, что эквивалентно True. Рекомендуется использовать это вместо True.
3.Persist Security Info : Соблюдайте правила техники безопасности.
Persist Security Info Атрибут означает, следует ли сохранять информацию о безопасности, на самом деле его можно просто понимать как «ADO Следует ли сохранять информацию о пароле после успешного подключения к базе данных », True означает сохранение, False означает, что не сохранять. По умолчанию ADO имеет значение False (необязательно).Как правило, если пароль подключения больше не требуется после успешного подключения к базе данных, по соображениям безопасности рекомендуется установить для Persist Security Info значение false, чтобы предотвратить получение программой бэкдора пароль подключения к базе данных.
4.initial catalog Эквивалент базы данных ( Можно менять местами): укажите имя подключенной базы данных (если не указано, подключена база данных по умолчанию для текущего имени пользователя, подробности см. Ниже)
5.DATA SOURCE SQL Название сервера
В источнике данных используйте localhost или (local) или "." для обозначения локального сервера. Также можно использовать внешний IP-адрес машины. Например: data source = 192.168 .24.71;
* ODBC-соединение
Использовать метод источника данных :
Этот метод предназначен в основном для настройки odbc Существует три способа источника данных: системный dsn, пользовательский dsn и файловый dsn. Конкретный метод здесь не рассматривается. После настройки источника данных вы можете подключить:
ConnectString="Driver=;server=servername;database=databasename;uid=username;pwd=password;"
Подробные примечания (об аутентификации Windows и аутентификации SQL):
При проверке подлинности Windows для подключения к базе данных используется учетная запись пользователя Windows, а при проверке подлинности SQL необходимо явно указать идентификатор пользователя и пароль SQL Server. Чтобы использовать проверку подлинности Windows, необходимо включить атрибут встроенной безопасности в строку подключения. :
Data Source=ServerName;Integrated Security=True;
По умолчанию свойство Integrated Security имеет значение False, что означает, что проверка подлинности Windows будет отключена. Если вы явно не установите для этого свойства значение True, соединение будет использовать проверку подлинности SQL Server, поэтому вы должны указать идентификатор пользователя и пароль SQL Server. Другие значения, которые может распознавать атрибут встроенной безопасности, — это только SSPI (Security Support Provider Interface). Во всех операционных системах Windows NT, включая Windows NT 4.0, 2000 и XP поддерживают значение SSPI. Это единственный интерфейс, который можно использовать при использовании проверки подлинности Windows, что эквивалентно установке для свойства Integrated Security значения True.
В режиме проверки подлинности Windows SQL Server использует подсистему безопасности Windows для проверки действительности пользовательских подключений. Даже если идентификатор пользователя и пароль указаны явно, SQL Server не проверяет идентификатор пользователя и пароль в строке подключения. Поскольку только Windows NT, 2000 и XP поддерживают SSPI, если вы используете эти операционные системы, вы можете использовать только интегрированные политики безопасности Windows для подключения к SQL Server. Независимо от того, какая операционная система используется, когда используется проверка подлинности SQL Server, идентификатор пользователя и пароль должны быть указаны в строке подключения:
Data Source=ServerName;User >
По умолчанию каждый пользователь SQL Server может указать базу данных по умолчанию.При создании пользователя в базе данных вы можете установить базу данных пользователя по умолчанию. Кроме того, вы также можете изменить базу данных пользователя по умолчанию в любое время. :Как показано ниже
Свойство Persist Security Info = true и Persist Security Info Property = false
Можете ли вы сказать мне, в чем разница между ними, и если я не добавлю это в свою связь, что произойдет?
2 ответа
Даже если вы установите Persist Security Info=true ИЛИ Persist Security Info=false это не покажет разницы сразу. Разница происходит на заднем плане.
Когда Persist Security Info=False , с учетом безопасности информация, такая как пароль, не возвращается как часть соединение, если соединение открыто или когда-либо было в открытом штат.
Если вы установите Persist Security Info=True , Windows запомнит пароль, указанный в строке подключения.
Вот в чем разница.
Установка Persist Security Info истина или ложь вступит в силу, только если вы укажете имя пользователя и пароль в строке подключения. Если вы укажете имя пользователя и пароль в строке подключения и установите Persist Security Info как false , тогда учетные данные не могут быть извлечены, но если вы установите Persist Security Info как истинное при указании учетных данных в строке подключения, окна запомнит учетные данные, и их можно будет извлечь программно.
Я нашел этот ответ здесь от Дэна Гузмана, MVP по SQL Server:
Я предлагаю вам указать FALSE или полностью опустить ключевое слово, поскольку оно используется по умолчанию даже во время разработки. Единственный раз, когда вам нужно указать TRUE, это если приложение использует аутентификацию SQL и впоследствии извлекает пароль из объекта соединения, что, по моему опыту, редко выполняется или требуется. Производительность не имеет значения.