用户X的sql登录失败...仅限Windows身份验证

时间:2011-03-07 17:28:32

标签: sql-server

嘿大家,在某些sql和c#交互方面遇到了麻烦。我正在安装程序中从脚本创建数据库和登录,然后实际的客户端程序应该登录,但每次运行客户端程序时,它都会发生炸弹,我在日志文件中收到此错误。 (顺便说一句:客户端程序在另一台机器上的预先存在的DB上运行。)

用户'user'的sql登录失败。原因:尝试使用SQL身份验证登录失败。服务器仅配置为Windows身份验证。 [客户:] 错误18456,严重性:14状态:58

这些是用于创建登录/用户的命令......

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]

我错过了什么? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:31)

您的SQL Server实例设置为仅支持Windows身份验证。您的创建用户脚本正在尝试创建SQL用户帐户,该帐户失败,因为数据库实例仅支持Windows身份验证。

要允许数据库支持您的create user语句,请打开SSMS。右键单击您的服务器并单击“属性”转到安全选项卡,将服务器身份验证从Windows身份验证模式更改为SQL Server和Windows身份验证模式。

一旦完成,您的脚本应该可以正常工作。