2011-03-07 20 views
14

hola a todos, teniendo problemas con algunas interacciones sql y C#. Estoy creando la base de datos y los inicios de sesión de las secuencias de comandos en un programa de instalación, entonces se supone que el programa cliente real debe iniciar sesión, pero cada vez que ejecuto el programa cliente, explota y obtengo este error en el archivo de registro. (por cierto, el programa cliente funciona en una base de datos preexistente en otra máquina).sql login failed for user X ... autenticación de Windows solo

sql login failed for user 'user'. Motivo: Error al intentar iniciar sesión utilizando la autenticación de SQL. El servidor está configurado solo para la autenticación de Windows. [CLIENTE:] error 18456, gravedad: 14 Estado: 58

Estos son los comandos que se utilizan para crear el nombre de usuario/usuario ...

CREATE LOGIN [user] WITH PASSWORD='pass', DEFAULT_DATABASE=[data], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
EXEC sys.sp_addsrvrolemember @loginame = N'user', @rolename = N'sysadmin' 
EXEC sys.sp_addsrvrolemember @loginame = N'user', @rolename = N'serveradmin' 
USE [data] CREATE USER [user] FOR LOGIN [user] WITH DEFAULT_SCHEMA=[dbo] 

¿Qué me falta?
gracias por la ayuda!

+0

¿Ha intentado agregar el dominio antes que el usuario? Ejemplo: 'myDomain \ user' –

Respuesta

31

Su instancia de SQL Server está configurada para admitir únicamente la autenticación de Windows. Su script de creación de usuario está intentando crear una cuenta de usuario de SQL, que falla porque la instancia de la base de datos solo es compatible con la autenticación de Windows.

Para permitir que su base de datos admita su declaración de usuario de creación, abra SSMS. Haga clic derecho en su servidor y haga clic en Propiedades. Vaya a la pestaña de seguridad y cambie la autenticación del servidor del modo de Autenticación de Windows al SQL Server y al modo de Autenticación de Windows.

Una vez hecho esto, su script probablemente funcione bien.

+0

en realidad, no fallaría al crearlo, fallaría al intentar iniciar sesión utilizándolo. El cambio en las propiedades del servidor funcionó, pero ¿cuál sería el script para hacer esto? Preferiría no instalar SSMS en todas las máquinas de nuestros clientes solo para hacer esta única tarea. –

+0

El cambio de seguridad de Windows al modo mixto es un cambio único. Como está hecho una vez, no necesita preocuparse de instalar SSMS en todas sus máquinas cliente. Que yo sepa, es algo que debe especificar al instalar SQL Server, o algo que puede anular dentro de SSMS, consulte http://stackoverflow.com/questions/1393654/how-to-change-from-sql-server -windows-mode-to-mixed-modesql-server-2008 para más detalles –

+0

el programa en el que estoy trabajando usa los servicios de publicación integrados de Microsoft que hace una instalación de un clic de mis requisitos previos ... uno de los cuales es sql server 2008 express edition. solo me pide que acepte el EULA cuando instala el servidor de bases de datos. Entonces, ¿están mis opciones realmente limitadas a la instalación de SSMS o la instalación manual de MSSQL '08 express para cambiarlo al servidor SQL y al modo de autenticación de Windows? ... o simplemente encontré la manera de hacerlo en el registro ... realmente me gustaría escribir una consulta para hacerlo ... –

Cuestiones relacionadas