首页 > 解决方案 > 为每个客户添加数据库用户

问题描述

我正在创建一个包含两个主要部分的数据库:客户可以看到的前端和只有公司才能看到的后端。

这是一个电子邮件订阅者系统,因此我希望客户能够查看、添加、编辑和删除他们在电子邮件订阅者表中的条目,但所有与管理员相关的表都应该对他们隐藏。

由于我对 SQL Server 2017 还很陌生,所以我仍然对登录名、用户和角色有所了解。

我想问的主要问题是这样做的最佳方法是什么?我知道我可以手动设置数据库用户并授予他们授予/拒绝权限,但是我如何自动执行此操作,以便每次将客户的详细信息添加到客户表中的新行时,侧栏中的新数据库用户是添加。

标签: sql-server

解决方案


尝试这个

public static void AddUsersToDatabase(string databaseserver, string databasename, string usertobeadded)
{
    using (SqlConnection conn = new SqlConnection("server=" + databaseserver + "; database=" + databasename + "; User ID=WPDOMAIN\\spdev; Integrated Security=SSPI;  password=Password123;"))
    {
        conn.Open();

        string password = "Password123";

        string sql = "CREATE LOGIN " + usertobeadded + " WITH PASSWORD = '" +
            password + "';  USE " + databasename + "; CREATE USER " + usertobeadded + " FOR LOGIN " + usertobeadded + ";";

        SqlCommand cmd = new SqlCommand(sql);
        cmd.ExecuteNonQuery();


        conn.Close();
    }
}

推荐阅读