我们已经构建了一个C#框架,可以对我们的数据库进行所有数据修改。我们不希望任何人直接对数据库进行数据更改。所有更改都必须通过我们的框架。
我的问题是如何执行此操作?我们怎样才能让SQL Server只允许从我们的框架中生成插入/更新/删除语句,而不是任何可能通过SSMS或其他工具连接的数百个人?
我对SQL Server安全/身份验证没有太多经验,所以我需要一些指导。
非常感谢。
答案 0 :(得分:2)
为您的应用程序创建一个SQL登录名,并将其授予存储过程或基表 - 无论您的需求是什么。
不要授予其他人访问权限。
但是你提到了一个'框架',这意味着许多应用程序和用户名将使用它......所以也许你需要另一种方法。
答案 1 :(得分:1)
您的框架应该使用自己的凭据访问SQL,无论它是sql登录还是框架运行的域帐户。为该帐户授予适当的SQL权限。
答案 2 :(得分:0)
一种方法是使用触发器并检查app_name,host_name
if app_name() in('SQL Query Analyzer','Microsoft SQL Server Management Studio')
raiserror (.....)
return
或拒绝写入/更新/删除对所有用户名的访问权限,但是您的应用使用的用户名