¿Cuál es la diferencia entre Integrated Security = True y Integrated Security = SSPI?
Tengo dos aplicaciones que utilizan Seguridad integrada. Uno asigna Integrated Security = true
en la cadena de conexión, y el otro establece Integrated Security = SSPI
.
¿Cuál es la diferencia entre SSPI
y true
en el contexto de la Seguridad Integrada?
9 answers
Según Microsoft son la misma cosa.
Cuando
false
, el ID de usuario y la contraseña se especifican en la conexión. Cuando true, las credenciales actuales de la cuenta de Windows se utilizan para la autenticación.
Los valores reconocidos sontrue
,false
,yes
,no
, ysspi
(muy recomendable), que es equivalente atrue
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-20 02:44:22
Integrated Security=true;
no funciona en todos los proveedores SQL, lanza una excepción cuando se usa con el proveedor OleDb
.
Así que básicamente se prefiere Integrated Security=SSPI;
ya que funciona con ambos SQLClient
& OleDB
proveedor.
Aquí está el conjunto completo de sintaxis de acuerdo con MSDN - Connection String Syntax (ADO.NET)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-06 11:27:37
Uso de la Autenticación de Windows
Para conectarse al servidor de base de datos se recomienda usar la autenticación de Windows, comúnmente conocida como seguridad integrada. Para especificar la autenticación de Windows, puede utilizar cualquiera de los dos pares clave-valor siguientes con el proveedor de datos. NET Framework para SQL Server:
Integrated Security = true;
Integrated Security = SSPI;
Sin embargo, solo el segundo funciona con el proveedor de datos . NET Framework OleDb. Si establece Integrated Security = true
para ConnectionString una excepción es lanzar.
Para especificar la autenticación de Windows en el proveedor de datos. NET Framework para ODBC, debe usar el siguiente par clave-valor.
Trusted_Connection = yes;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-13 10:38:47
Muchas preguntas obtienen respuestas si usamos .Net Reflector
para ver el código real de SqlConnection
:)
true
y sspi
son lo mismo:
internal class DbConnectionOptions
...
internal bool ConvertValueToIntegratedSecurityInternal(string stringValue)
{
if ((CompareInsensitiveInvariant(stringValue, "sspi") || CompareInsensitiveInvariant(stringValue, "true")) || CompareInsensitiveInvariant(stringValue, "yes"))
{
return true;
}
}
...
EDITAR 20.02.2018 Ahora en. Net Core podemos ver su código abierto en github! Buscar convertvaluetointegratedsecuritymétodo interno:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-20 14:15:35
Integrated Security = False : El ID de usuario y la contraseña se especifican en la conexión. Seguridad integrada = true: las credenciales actuales de la cuenta de Windows se utilizan para la autenticación.
Integrated Security = SSPI : esto es equivalente a true.
Podemos evitar los atributos de nombre de usuario y contraseña de la cadena de conexión y utilizar la Seguridad integrada
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-23 08:13:38
Permítanme comenzar con Integrated Security = false
false
El ID de usuario y la contraseña se especifican en la cadena de conexión.true
Las credenciales de la cuenta de Windows se utilizan para la autenticación.
Los valores Reconocidos son true
, false
, yes
, no
, y SSPI
.
Si se especifican User ID
y Password
y la Seguridad integrada se establece en true
, entonces se ignorarán User ID
y Password
y se utilizará la Seguridad integrada
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-10 04:26:41
Tenga en cuenta que las cadenas de conexión son específicas para qué y cómo se conecta a los datos. Estos se conectan a la misma base de datos, pero el primero utiliza.NET Framework Data Provider para SQL Server. Integrated Security = True no funcionará para OleDb.
- Fuente de datos=.; Initial Catalog = aspnetdb; Integrated Security=True
- Provider=SQLOLEDB;Data Source=.; Integrated Security=SSPI; Initial Catalog = aspnetdb
En caso de duda, utilice Visual Studio Conexiones de Datos del Explorador de Servidores.
- ¿Qué es sspi?
- Sintaxis de cadenas de conexión
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-02 23:46:32
True solo es válido si está utilizando la biblioteca.NET SqlClient. No es válido cuando se utiliza OLEDB. Donde SSPI es bvaid en ambos, está utilizando la biblioteca. net SqlClient u OLEDB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-09 12:54:45
En mi punto de vista,
Si no usa Integrated security=SSPI,entonces necesita codificar el nombre de usuario y la contraseña en la cadena de conexión, lo que significa "relativamente inseguro", porque porque, todos los empleados tienen acceso, incluso los ex empleados podrían usar la información maliciosamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-02 08:57:24