Я создал следующий код ниже для программного добавления логина и пользователя в SQL Server 2016 из кода C #. Мне также нужно назначить новому пользователю соответствующие роли для доступа на чтение и запись к базе данных, НО я не могу найти никаких примеров, которые бы мне помогли при использовании строки cmdText ниже.
Я предполагаю, что роли, которые мне нужно добавить этому новому пользователю:
db_datareader
db_datawriter
Этот вновь созданный пользователь должен иметь доступ только к одной базе данных и иметь возможность добавлять / редактировать / удалять / обновлять записи из существующих таблиц базы данных.
Мне нужно добавить этот новый логин / пользователя только один раз. Как только я понял это, мне нужно еще два действия:
Напишите метод с cmdText
, который позволит мне сделать следующее:
- Обновить пароль для этого пользователя "admin"
- Удалить учетную запись «admin» на более позднем этапе.
Код:
static readonly string connectionString = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
public static void CreateSqlServerUserAccount()
{
string usertobeadded = "admin";
string password = "ComplexPasswordExample123456";
string databasename = "DatabaseNameHere";
string cmdText = "CREATE LOGIN " + usertobeadded + " WITH PASSWORD = '" +
password + "'; USE " + databasename + "; CREATE USER " + usertobeadded + " FOR LOGIN " + usertobeadded + ";";
// The connection is automatically closed at the end of the using block.
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
SqlCommand cmd = new SqlCommand(cmdText, connection);
connection.Open();
cmd.ExecuteNonQuery();
log.Info("NEW Login & User Account created on Microsoft SQL Server");
}
catch (Exception ex)
{
log.Error("Error creating a new login and user account on Microsoft SQL Server: ", ex);
SystemEvents.DatabaseExceptions(ex);
}
}
}