保护我的SQL服务器数据库

时间:2014-09-24 01:45:45

标签: sql-server

我创建了一个使用sql server数据库的应用程序。

但问题是用户可以打开sql server管理工作室,可以做任何我不喜欢的事情,例如:

1)可以修改表格内的值。

2)可以删除记录

3)可以看到并且可以获得我的数据库结构.....

...

如何保护我的数据库,以便用户只能在我的应用程序内部修改此数据库,并且可以在我的应用程序之外执行任何操作?我不知道确实存在一种用密码或......来保护我的数据库的方法。例如,当我使用Access for database时,我使用密码保护Access文件,并且只有我的应用程序才能打开此数据库。  是否可以在sql server数据库文件中包含保护(所以即使将文件导入另一台计算机以保持受保护?

谢谢!


更新: 请让我解释,因为我有一个特定的情况:

我的应用程序被指定管理多个" office"。

在我的应用程序文件夹中,我有一个名为" Model"的数据库的空备份文件(离线)。在我的应用程序中,用户可以创建一个新的办公室"当他这样做时,应用程序恢复"模型"在具有特定名称的SQL服务器内部(例如" Office1"。另一次用户可以创建另一个" Office"再次使用"模型"

所以在Sql server里面可能是不同的数据库(所有这些数据库具有相同的结构),例如" Model"

所以在这种情况下我如何保护我的数据库和"模型" 。

因为我认为我应该应用保护"在离线备份文件中"模型" (如果可能的话,所有从"模型"创建的数据库都将获得保护)或??????

在这种情况下我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,您可以保护SQL Server数据库免受不必要的入侵。

您可以将不同的组分配给数据库角色。如果您指定有权访问DB_DATAREADER角色的所有人,则他们只能读取数据。

在这里阅读更多内容 http://msdn.microsoft.com/en-us/library/ms189121.aspx

您的应用程序需要通过DB_DATAWRITER角色进行连接。

默认情况下,DB_DATABASEOWNER角色或SYSADMIN角色(这些是服务器级角色)中的某个人将拥有对数据库中所有对象的完全访问权限(除非您撤消这些权限)。

相关问题