Persist security info true что это
Перейти к содержимому

Persist security info true что это

  • автор:

Настроить ConnectionStrings.config для MS SQL Server

В файле ConnectionStrings.config, который находится в корневой папке сайта Creatio, содержатся параметры подключения вашего приложения к базе данных и внешним сервисам.

Настроить ConnectionStrings.config

  1. Перейдите в корневой каталог сайта Creatio ~\WebAppRoot\Creatio.
  2. Откройте в текстовом редакторе файл ConnectionStrings.config.
  3. Укажите параметры подключения (connectionStrings) вашего сайта.

Пример настроенного файла ConnectionStrings.config

  Имя сервера базы данных; Initial Catalog=Имя базы данных; Persist Security Info=True; MultipleActiveResultSets=True; Integrated Security=SSPI; Pooling = true; Max Pool Size = 100; Async = true" /> Имя компьютера;db=Номер БД Redis;port=6379; maxReadPoolSize=10;maxWritePoolSize=500" />      Имя пользователя ElasticSearch; Password=Пароль пользователя ElasticSearch;" /> 

Обязательные настройки ConnectionStrings.config

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

    name=”db” — отвечает за подключение к восстановленной базе данных . Имя сервера баз данных (Data Source) можно увидеть в окне авторизации при подключении к серверу из Microsoft SQL Server Management Studio ( Рис. 1 ).

Рис. 1 — Окно авторизации на SQL-сервер

scr_setup_server_name.png

Имя базы данных (Initial Catalog) должно совпадать со значением поля Database , которое вы указали при восстановлении базы данных. По умолчанию для подключения Creatio к серверу базы данных используется аутентификация Windows (Integrated Security), основанная на интерфейсе SSPI. Чтобы обеспечить успешное подключение к БД, необходимо для приложения указать пользователя Windows, под которым будет выполняться подключение к серверу базы данных.

Имя сервера базы данных; Initial Catalog=Имя базы данных; Persist Security Info=True; MultipleActiveResultSets=True; Integrated Security=SSPI; Pooling = true; Max Pool Size = 100; Async = true" />

Если же вы хотите авторизоваться на сервере базы данных при помощи логина и пароля пользователя MS SQL, то необходимо предварительно создать логин и пароль такого пользователя на сервере MS SQL и внести изменения в файл ConnectionStrings.config. В строке подключения к базе данных (add name=”db”) замените переменную Integrated Security=SSPI на User ID и Password:

Имя компьютера;db=Номер БД Redis;port=6379; maxReadPoolSize=10;maxWritePoolSize=500" />

Необязательные настройки ConnectionStrings.config

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

    tempDirectoryPath — путь к временной директории, используемой механизмом установки пакетов:

Путь к временной директории, используемой механизмом установки пакетов />
Путь к рабочей копии пользовательских пакетов />
Путь к данным авторизации системы хранения версий (SVN) />
Адрес сервиса сбора метрик сайта; user=Пользователь, от имени которого выполняется подключение; password=Пароль; batchIntervalMs=5000" />
Адрес сервиса логгирования" />
Имя пользователя MessageBroker:Пароль пользователя@Адрес сервера, на котором развернут сервис/Имя виртуального сервера" />

Синтаксис строки подключения

Каждый поставщик данных платформы .NET Framework имеет объект Connection , наследующий из DbConnection, а также из свойства ConnectionString, зависящего от поставщика. Конкретный синтаксис строки подключения для каждого поставщика приведен в его свойстве ConnectionString . В следующей таблице представлен список четырех поставщиков данных, поставляемых в составе платформы .NET Framework.

Поставщик данных .NET Framework Описание
System.Data.SqlClient Предоставляет доступ к данным для Microsoft SQL Server. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.
System.Data.OleDb Предоставляет доступ к данным источников данных OLE DB. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.
System.Data.Odbc Предоставляет доступ к данным источников данных ODBC. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.
System.Data.OracleClient Предоставляет доступ к данным Oracle версии 8.1.7 или старше. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.

Построители строк подключения

В ADO.NET 2.0 появились указанные ниже построители строк соединения для поставщиков данных .NET Framework.

  • SqlConnectionStringBuilder
  • OleDbConnectionStringBuilder
  • OdbcConnectionStringBuilder
  • OracleConnectionStringBuilder

Построители строк соединения позволяют создавать во время выполнения синтаксически правильные строки соединения, и поэтому в коде не требуется вручную объединять значения строк соединения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).

Проверка подлинности Windows

Для соединения с источниками данных рекомендуется использовать проверку подлинности Windows (которую также называют встроенной безопасностью), если эти источники ее поддерживают. Синтаксис строки подключения зависит от поставщика. В следующей таблице показан синтаксис проверки подлинности Windows, который используется с поставщиками данных платформы .NET Framework.

Поставщик Синтаксис
SqlClient Integrated Security=true;

Значение Integrated Security=true вызывает исключение при работе с поставщиком OleDb .

Строки подключения SqlClient

Синтаксис для строки подключения SqlConnection документирован в свойстве SqlConnection.ConnectionString. Свойство ConnectionString используется для возврата или задания строки подключения для базы данных SQL Server. Если необходимо подключиться к более ранней версии SQL Server, следует использовать поставщик данных .NET Framework для OleDb (System.Data.OleDb). Наиболее распространенные ключевые слова строк соединения также соответствуют свойствам SqlConnectionStringBuilder.

Для ключевого слова Persist Security Info используется значение по умолчанию false . Значение true или yes позволяет получить из строки соединения конфиденциальные данные (в том числе идентификатор пользователя и пароль) после открытия соединения. Задайте для Persist Security Info значение false , чтобы убедиться, что ненадежный источник не сможет получить доступ к конфиденциальным данным строки подключения.

Проверка подлинности Windows при работе с SqlClient.

Все следующие формы синтаксиса используют для подключения к базе данных AdventureWorks, размещенной на локальном сервере, проверку подлинности Windows.

"Persist Security Info=False;Integrated Security=true; Initial Catalog=AdventureWorks;Server=MSSQL1" "Persist Security Info=False;Integrated Security=SSPI; database=AdventureWorks;server=(local)" "Persist Security Info=False;Trusted_Connection=True; database=AdventureWorks;server=(local)" 

Проверка подлинности SQL Server с использованием SqlClient.

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

"Persist Security Info=False;User Catalog=AdventureWorks;Server=MySqlServer" 

Если при подключении к Базе данных SQL Azure или хранилищу данных Azure SQL имя входа предоставляется в формате user@servername , значение servername в имени входа должно соответствовать значению, указанному для Server= .

Проверка подлинности Windows имеет приоритет над именами входа SQL Server. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.

Подключение к именованному экземпляру SQL Server

Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.

"Data Source=MySqlServer\\MSSQL1;" 

Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.

Изменения версий системы типов

Ключевое слово Type System Version в SqlConnection.ConnectionString указывает клиентское представление типов SQL Server. Дополнительные сведения о ключевом слове SqlConnection.ConnectionString см. в разделе Type System Version .

Подключение и присоединение к пользовательским экземплярам SQL Server Express

Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.

Использование ключевого слова TrustServerCertificate

Ключевое слово TrustServerCertificate применяется только при подключении к экземпляру SQL Server с допустимым сертификатом. Если ключевому слову TrustServerCertificate присвоено значение true , то транспортный уровень будет использовать протокол SSL для шифрования канала и не пойдет по цепочке сертификатов для проверки доверия.

"TrustServerCertificate=true;" 

Если ключевому слову TrustServerCertificate присвоено значение true и включено шифрование, то будет использоваться уровень шифрования, заданный на сервере, даже если в строке подключения Encrypt задано значение false . В противном случае соединение не будет установлено.

Включение шифрования

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

Настройки приложения не могут снизить установленный на SQL Server уровень безопасности, но при необходимости могут повысить его. Приложение может затребовать шифрование, присвоив ключевым словам TrustServerCertificate и Encrypt значение true , гарантируя тем самым, что шифрование будет выполняться, даже если сертификат сервера не подготовлен и для клиента не настроен параметр Принудительное шифрование протокола. Но если на клиенте не установлен параметр TrustServerCertificate , то сертификат сервера, тем не менее, потребуется.

В следующей таблице перечислены все случаи.

Параметр «Принудительное шифрование протокола» на клиенте Параметр «Доверять сертификату сервера» на клиенте Строка или атрибут «Шифровать/Использовать шифрование для подключения к данным» Строка подключения или атрибут «Доверять сертификату сервера» Результат
нет Н/Д Нет (по умолчанию) Не учитывается Шифрование отсутствует.
нет Н/Д Да Нет (по умолчанию) Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно.
нет Н/Д Да Да Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.
Да нет Не учитывается Не учитывается Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем.
Да Да Нет (по умолчанию) Не учитывается Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.
Да Да Да Нет (по умолчанию) Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем.
Да Да Да Да Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.

Строки соединения OleDb

Свойство ConnectionString класса OleDbConnection позволяет получить или задать строку подключения для источника данных OLE DB (например, Microsoft Access). Строку подключения OleDb также можно создать во время выполнения с помощью класса OleDbConnectionStringBuilder.

Синтаксис строки соединения OleDb

В строке соединения OleDbConnection необходимо указать имя поставщика. Следующие строки подключения подключают к базе данных Microsoft Access, использующей поставщик Jet. Обратите внимание, что ключевые слова User ID и Password необязательны, если база данных не защищена (по умолчанию).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User >Если база данных Jet защищена на уровне пользователя, необходимо указать местоположение файла сведений рабочей группы (MDW-файла). Файл сведений рабочей группы используется для проверки учетных данных, указанных в строке подключения.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User 

Сведения о подключении для OleDbConnection можно указать в UDL-файле; однако следует избегать этого. UDL-файлы не подвергаются шифрованию, и строки соединения хранятся в них в виде простого текста. Так как UDL-файл представляет собой внешний файловый ресурс для приложения, его нельзя защитить средствами .NET Framework. UDL-файлы не поддерживаются для SqlClient.

Соединение с Access/Jet с помощью строки замены DataDirectory

Строка замены DataDirectory поддерживается не только клиентом SqlClient . Ее можно также использовать с поставщиками данных .NET для System.Data.OleDb и System.Data.Odbc. В следующем образце строки OleDbConnection приведен синтаксис для подключения к базе данных Northwind.mdb, расположенной в папке приложения app_data. В этой папке также хранится системная база данных (System.mdw).

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\Northwind.mdb; Jet OLEDB:System Database=|DataDirectory|\System.mdw;" 

Указывать расположение системной базы данных в строке подключения не требуется, если база данных Access/Jet не защищена. Защита снята по умолчанию, все пользователи соединяются как встроенный пользователь Admin с пустым паролем. База данных Jet остается уязвимой для атаки, даже если правильно реализована безопасность на уровне пользователя. Поэтому в базе данных Access/Jet не рекомендуется хранить конфиденциальные данные, поскольку схема безопасности на основе файловой системы неизбежно обладает определенной уязвимостью.

Соединение с Excel

Поставщик Microsoft Jet используется для подключения с книгой Excel. В следующей строке подключения ключевое слово Extended Properties задает специфические свойства Excel. «HDR=Yes;» показывает, что первая строка содержит имена столбцов, а не данные, а «IMEX=1;» дает указания драйверу всегда считывать «смешанные» столбцы данных как текст.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"" 

Обратите внимание, что двойные кавычки, необходимые для ключевого слова Extended Properties , также должны заключаться в двойные кавычки.

Синтаксис строки подключения с поставщиком Data Shape

При соединении с поставщиком Microsoft Data Shape используются оба ключевых слова: Provider и Data Provider . В следующем примере поставщик Data Shape используется для подключения к экземпляру SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;" 

Строки подключения ODBC

Свойство ConnectionString класса OdbcConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения ODBC также поддерживаются построителем OdbcConnectionStringBuilder.

Следующая строка подключения использует текстовый драйвер Microsoft.

Driver=;DBQ=d:\bin 

Использование строки замены DataDirectory для соединения с Visual FoxPro

Следующий образец строки подключения OdbcConnection демонстрирует использование DataDirectory для соединения с файлом Microsoft Visual FoxPro.

"Driver=; SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;" 

Строки подключения Oracle

Свойство ConnectionString класса OracleConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения Oracle также поддерживаются построителем OracleConnectionStringBuilder.

Data Source=Oracle9i;User 

Дополнительные сведения о синтаксисе строки подключения ODBC см. в разделе ConnectionString.

См. также

  • Строки подключения
  • Подключение к источнику данных
  • Общие сведения об ADO.NET

Persist security info true что это

Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6

Последнее обновление: 31.10.2015

После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.

Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:

class Program < static void Main(string[] args) < string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; >>

При использовании различных систем управления базами данных, различных провайдеров данных .NET строка подключения может отличаться. Даже для подключения одной и той же базы данных строка подключения может меняться в зависимости от обстоятельств.

Строка подключения представляет набор параметров в виде пар ключ=значение . В данном случае для подключения к ранее созданной базе данных usersdb мы определяем строку подключения из трех параметров:

  • Data Source : указывает на название сервера. По умолчанию это «.\SQLEXPRESS». Поскольку в строке используется слеш, то в начале строки ставится символ @. Если имя сервера базы данных отличается, то соответственно его и надо использовать.
  • Initial Catalog : указывает на название базы данных на сервере
  • Integrated Security : устанавливает проверку подлинности

Жесткое кодирование строки подключения (то есть ее определение в коде приложения), как правило, редко используется. Гораздо более гибкий путь представляет определение ее в специальных конфигурационных файлах приложения. В проектах десктопных приложений это файл App.config , а в веб-приложениях это в основном файл Web.config . Хотя приложение также может использовать другие способы определения конфигурации.

В нашем случае, так как мы создали проект консольного приложения, то у нас в проекте должен быть файл App.config, который на данный момент имеет следующее определение:

Изменим его, добавив определение строки подключения:

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

Каждая строка подключения имеет название, определяемое с помощью атрибута name . В данном случае строка подключения называется «DefaultConnection». Название может быть произвольное.

Атрибут connectionString собственно хранит строку подключения, то есть весь тот текст, который мы выше определяли в методе Main. И третий атрибут providerName задает пространство имен провайдера данных. Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.

Теперь получим эту строку подключения в приложении:

using System; using System.Configuration; namespace AdoNetConsoleApp < class Program < static void Main(string[] args) < //string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"; // получаем строку подключения string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; Console.WriteLine(connectionString); Console.Read(); >> >

Прежде всего чтобы работать с конфигурацией приложения, нам надо добавить в проект библиотеку 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 :

string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;User Password = 1234567fd";";

Persist Security Info Property=true and Persist Security Info Property=false

Can you tell me what is the difference between them, and if I don’t put it in my connection what will happen?

connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:/Users/Nourah/Downloads /Phase3/Salary.accdb; Persist Security Info=False;"; 

3,561 28 28 gold badges 39 39 silver badges 38 38 bronze badges
asked May 24, 2015 at 2:54
761 1 1 gold badge 5 5 silver badges 4 4 bronze badges
possible duplicate of Differance Between Persist Security Info And Integrated Security
May 24, 2015 at 3:04
but i don’t understand carefully when i applied on code , same result
May 24, 2015 at 3:56
Not sure there is any point in using Persist Security Info with ms-access
Feb 9, 2020 at 19:02

2 Answers 2

Even if you set Persist Security Info=true OR Persist Security Info=false it won’t show a difference up front. The difference is happening in the background.

When Persist Security Info=False , security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state.

If you set Persist Security Info=True , Windows will remember the password specified in the connection string.

That’s the difference.

Setting Persist Security Info true or false will come into effect only if you mention username and password in the connection string. If you mention username and password in the connection string and set Persist Security Info as false then the credentials cannot be extracted, but if you set Persist Security Info as true while giving credentials in the connection string, windows will remember the credentials, and it can be extracted programmatically.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *