Создать новый вход в базу данных и настроить его в коде SQL Server? ⇐ C#
-
Гость
Создать новый вход в базу данных и настроить его в коде SQL Server?
Я пытаюсь создать проект C# Windows Forms с .NET 4.5, Entity Framework и SQL Server 2019.
В настоящее время я создаю установочный файл с автоматической установкой, выполняющей всю работу автоматически, и все работает отлично.
Теперь я хочу защитить свою базу данных после первого запуска и создания. Я хочу создать новое имя входа на SQL Server, а затем назначить его своей базе данных. После слишком многих попыток и ошибок я использовал этот код, но получаю ошибку, потому что не знаю, какой пароль по умолчанию Sa. Я нашел этот (RPSsql12345) пароль по умолчанию в Интернете.
Я тоже не знаю, правильный это подход или нет?
пространство имен DataAccessLayer { общедоступный класс DACcheckDatabase { публичная недействительность CreateDatabase() { // Проверяем, существует ли база данных если (!DatabaseExists()) { // Создаем новую базу данных используя (var context = новая БД()) { string ConnectionString = "Источник данных=DESKTOP-JU6B73e\\SQL2019;Исходный каталог=master;ID пользователя=sa;Пароль=RPSsql12345;"; Соединение SqlConnection = новый SqlConnection (connectionString); соединение.Открыть(); строка имя пользователя = «тест»; строковый пароль = «1234»; string createLoginQuery = $"СОЗДАТЬ ВХОД {имя пользователя} С ПАРОЛЕМ = '{пароль}'"; SqlCommand createLoginCommand = новый SqlCommand (createLoginQuery, соединение); createLoginCommand.ExecuteNonQuery(); контекст.База данных.Создать(); строка имя_базы данных = "testDB"; строка AssignLoginQuery = $"USE {databaseName}; CREATE USER {username} ДЛЯ ВХОДА {username}; EXEC sp_addrolemember 'db_owner', '{username}'"; SqlCommand AssignLoginCommand = новый SqlCommand (assignLoginQuery, соединение); AssignLoginCommand.ExecuteNonQuery(); } } } частная база данных bool DatabaseExists() { используя (var context = новая БД()) { вернуть context.Database.Exists(); } } } } Это моя строка подключения в файле app.config:
"источник данных=DESKTOP-JU6B73e\SQL2019;начальный каталог=testDB;идентификатор пользователя=test;пароль=1234;Trusted_Connection=False;"
Я пытаюсь создать проект C# Windows Forms с .NET 4.5, Entity Framework и SQL Server 2019.
В настоящее время я создаю установочный файл с автоматической установкой, выполняющей всю работу автоматически, и все работает отлично.
Теперь я хочу защитить свою базу данных после первого запуска и создания. Я хочу создать новое имя входа на SQL Server, а затем назначить его своей базе данных. После слишком многих попыток и ошибок я использовал этот код, но получаю ошибку, потому что не знаю, какой пароль по умолчанию Sa. Я нашел этот (RPSsql12345) пароль по умолчанию в Интернете.
Я тоже не знаю, правильный это подход или нет?
пространство имен DataAccessLayer { общедоступный класс DACcheckDatabase { публичная недействительность CreateDatabase() { // Проверяем, существует ли база данных если (!DatabaseExists()) { // Создаем новую базу данных используя (var context = новая БД()) { string ConnectionString = "Источник данных=DESKTOP-JU6B73e\\SQL2019;Исходный каталог=master;ID пользователя=sa;Пароль=RPSsql12345;"; Соединение SqlConnection = новый SqlConnection (connectionString); соединение.Открыть(); строка имя пользователя = «тест»; строковый пароль = «1234»; string createLoginQuery = $"СОЗДАТЬ ВХОД {имя пользователя} С ПАРОЛЕМ = '{пароль}'"; SqlCommand createLoginCommand = новый SqlCommand (createLoginQuery, соединение); createLoginCommand.ExecuteNonQuery(); контекст.База данных.Создать(); строка имя_базы данных = "testDB"; строка AssignLoginQuery = $"USE {databaseName}; CREATE USER {username} ДЛЯ ВХОДА {username}; EXEC sp_addrolemember 'db_owner', '{username}'"; SqlCommand AssignLoginCommand = новый SqlCommand (assignLoginQuery, соединение); AssignLoginCommand.ExecuteNonQuery(); } } } частная база данных bool DatabaseExists() { используя (var context = новая БД()) { вернуть context.Database.Exists(); } } } } Это моя строка подключения в файле app.config:
"источник данных=DESKTOP-JU6B73e\SQL2019;начальный каталог=testDB;идентификатор пользователя=test;пароль=1234;Trusted_Connection=False;"
Мобильная версия