Как добавить пароль к localdb - PullRequest
0 голосов
/ 02 ноября 2018

Кто-нибудь знает, как мне обновить мой «Server = (localdb) \ MSSQLLocalDB; Database = SampleDB», чтобы он требовал пароль, чтобы я мог передать его через строку подключения? Я использую ядро ​​.NET, C #, и Visual Studio создает простое приложение, использующее localdb, которое в настоящее время работает только с Trusted_Connection = True в строке подключения.

Я хочу обновить БД, требуя пароль, который я могу передать через строку подключения.

1 Ответ

0 голосов
/ 02 ноября 2018

Во-первых, вам нужно проверить, включена ли аутентификация в смешанном режиме в этом экземпляре 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). Вы можете сделать это из Object Explorer в разделе Security \ Logins или с помощью скрипта:

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

Это даст вашему логину полные права на вашу базу данных. Возможно, вы захотите предоставить ему меньше прав, только то, что нужно, но я не знаю, что вам на самом деле нужно. Я рекомендую вам прочитать эту статью, чтобы понять, что и как делать.

После того как вы все это сделаете, вы можете использовать такую ​​строку подключения:

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