如何将密码添加到localdb

时间:2018-11-02 18:42:12

标签: sql-server-express localdb

有人知道如何更新“ Server =(localdb)\ MSSQLLocalDB; Database = SampleDB”以要求输入密码,以便通过连接字符串将其传递给我吗?我正在使用.NET核心和Visual Studio C#,构建一个使用localdb的简单应用,该应用当前仅在连接字符串中使用“ Trusted_Connection = True”。

我想更新数据库以要求可以通过连接字符串传递的密码。

1 个答案:

答案 0 :(得分:1)

首先,您需要检查在此SQL Server实例中是否启用了混合模式身份验证。为此,请运行Management Studio并连接到服务器。在对象资源管理器中的服务器上单击鼠标右键,然后单击“属性”。从显示的对话框中,转到“安全性”,并确保已选择“ SQL Server和Windows身份验证模式”:

enter image description here

您需要此模式才能使用用户名和密码进行身份验证。也可以使用T-SQL脚本启用它:

ALTER LOGIN sa ENABLE;
GO  
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>';  
GO

这时(并最终重新启动实例),您应该能够在连接字符串中使用sa登录名和密码。但是,不建议这样做。为您的应用程序创建专用登录名(而不是sa)会更好。您可以从“对象安全性” \“登录名”部分中的脚本或使用脚本进行此操作:

USE [master]
GO
CREATE LOGIN [my_login] WITH PASSWORD=N'<enterStrongPasswordHere>', DEFAULT_DATABASE=[YourDatabaseName], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO

然后,您需要在数据库中为此登录创建一个用户(登录是服务器级别的对象,用户在数据库中)。运行此脚本:

USE [YourDatabaseName]
GO
CREATE USER [my_login] FOR LOGIN [my_login]
GO
ALTER ROLE [db_owner] ADD MEMBER [my_login]
GO

这将使您的登录名具有数据库的全部权限。您可能只想授予它较少的权限,但是我不知道您实际需要什么。我建议您阅读this文章,以了解操作方法和方法。

完成所有操作后,可以使用如下连接字符串:

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=DataBaseName;User id=my_login;Password=<enterStrongPasswordHere>;