SQL Server授权/安全问题

时间:2010-01-25 15:35:48

标签: sql-server

我们已经构建了一个C#框架,可以对我们的数据库进行所有数据修改。我们不希望任何人直接对数据库进行数据更改。所有更改都必须通过我们的框架。

我的问题是如何执行此操作?我们怎样才能让SQL Server只允许从我们的框架中生成插入/更新/删除语句,而不是任何可能通过SSMS或其他工具连接的数百个人?

我对SQL Server安全/身份验证没有太多经验,所以我需要一些指导。

非常感谢。

3 个答案:

答案 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

或拒绝写入/更新/删除对所有用户名的访问权限,但是您的应用使用的用户名