sql-server - 为每个客户添加数据库用户
问题描述
我正在创建一个包含两个主要部分的数据库:客户可以看到的前端和只有公司才能看到的后端。
这是一个电子邮件订阅者系统,因此我希望客户能够查看、添加、编辑和删除他们在电子邮件订阅者表中的条目,但所有与管理员相关的表都应该对他们隐藏。
由于我对 SQL Server 2017 还很陌生,所以我仍然对登录名、用户和角色有所了解。
我想问的主要问题是这样做的最佳方法是什么?我知道我可以手动设置数据库用户并授予他们授予/拒绝权限,但是我如何自动执行此操作,以便每次将客户的详细信息添加到客户表中的新行时,侧栏中的新数据库用户是添加。
解决方案
尝试这个
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();
}
}
推荐阅读
- oracle - (Oracle)打开视图时显示权限不足
- sql - 孩子的递归总和以计算oracle 12c中的另一个字段
- outlook - 在 Outlook 中,更改 POP3 服务器设置会删除现有的收件箱电子邮件吗?
- sas - 为什么错误的内部查询不会使外部查询错误
- javascript - 我的表中有两个唯一键。使用异常 DUP_VAL_ON_INDEX 时,我可以选择发生违规的特定(唯一)列吗?
- python - 使用 jinja 标签在 html 标签内使用 if 条件
- python - 装饰类的方法会导致 2.7 中的未绑定方法 TypeError
- sql - 无法连接到 docker 容器内的 SQL Server
- mermaid - Mermaid - 如何为流程图节点设置标签样式
- javascript - 如何使用 jquery 重绘 div(webflow 自定义代码)