我将开始在新的桌面应用程序上工作。我想使用轻量级的独立数据库,以便使用SQL LocalDB,但要添加身份验证。在访问数据库之前,我需要用户名和密码,但此处未应用身份验证,请帮助我该怎么做。

如果我们不能在SQL LocalDB中添加用户名和密码,那么请向我建议另一个最适合我的数据库,也可以使用 Entity Framework 。

提前致谢

最佳答案

要将新的数据库用户添加到MSSQLLocalDB中,您需要连接到该用户并执行以下操作:

CREATE LOGIN your_user WITH PASSWORD = 'your_password';
CREATE USER your_user FOR LOGIN your_user;
EXEC sp_addrolemember 'db_owner', 'your_user'

然后,您将能够使用这些凭据使用MSSQLLocalDB连接到SQL Server Authentication数据库引擎。
Server name: (LocalDB)\MSSQLLocalDB
Authentication: SQL Server Authentication
User: your_user
Password: your_password

或者,您可以使用实例管道名称代替(LocalDB)\MSSQLLocalDB作为Server name(请参见下文,在何处获取它)。

从SQL Server Management Studio(SSMS)到本地数据库的初始连接

最初,要运行上面的SQL命令,您需要使用MSSQLLocalDB连接到Windows Authentication。您可以通过两种方式进行操作(如果默认情况下第一种无效,请尝试第二种方式)。

使用实例名称
Server name: (LocalDB)\MSSQLLocalDB
Authentication: Windows Authentication

使用实例管道名称

从命令行转到C:\Program Files\Microsoft SQL Server\130\Tools\Binn\(您可能需要使用其他版本,并用文件夹名称替换\130\),然后运行SqlLocalDB.exe来查找您拥有的本地数据库实例:
SqlLocalDB.exe i

确保您列出了MSSQLLocalDB。然后运行以下命令以查看MSSQLLocalDB状态(第一行),并在停止时启动(第二行):
SqlLocalDB.exe i MSSQLLocalDB
SqlLocalDB.exe start MSSQLLocalDB

然后,您可以再次执行SqlLocalDB.exe i MSSQLLocalDB来查看实例管道名称。像这样的np:\\.\pipe\LOCALDB#D7900618\tsql\query
要输入SSMS,您需要输入:
Server name: np:\\.\pipe\LOCALDB#D7900618\tsql\query
Authentication: Windows Authentication

10-05 23:23