2008-11-05 92 views
1

我已经构建了一个使用SQL Express 2005的应用程序,我想部署它,但问题是任何拥有SQL Management Studio(或类似的东西)的人都可以在他的计算机上安装连接到我的数据库并进行更改。 是否有阻止最终用户查看或编辑我的数据库的内容,即使是那些具有管理员权限的内容?SQL Express 2005,安全数据库文件

+0

如果我为SA帐户和混合模式安装了带有自定义密码的SQL Express?在不知道密码的情况下是否仍可以连接到它? – mrtaikandi 2008-11-05 10:22:23

+0

这是一个或者或者它可以让你使用sql server auth进行身份验证或者使用Windows身份验证进行身份验证。它不会让一个人既做一个,也不做另一个。只有当您不需要Windows身份验证才能运行时,您必须将其锁定到SQL Server身份验证。 – 2008-11-05 10:37:38

回答

2

我想你是指默认情况下SQL Server安装允许Windows和SQL Server身份验证。如果您删除Windows身份验证模式,则用户将不得不通过SQL Server身份验证进行连接。

这从http://support.microsoft.com/kb/247931

SQL Server身份验证

SQL服务器 身份验证依赖由SQL Server的计算机 维护的内部 用户列表。此列表不包括 Windows NT用户,并且特定于 SQL Server计算机。用户是 使用SQL企业管理器创建和配置。要使用此 身份验证方法,与 执行以下步骤:如果通过开放式数据库连接 (ODBC)连接 ,在ODBC管理

•, 选择SQL Server身份验证时 您配置数据源。

•在 ActiveX数据对象(ADO) 连接字符串,包括 参数“UID”和“PWD”当你 使用ODBC,和“用户ID”和“密码” 当您使用SQLOLEDB提供商。

1

我想这不是你所希望的答案,但不可避免的是,任何具有管理权限的人都可以浏览和编辑数据库中的信息。

你不能改变这一点。

也许你可以考虑为什么要防止这种访问?

我希望你想防止篡改或意外的数据损坏?

如果这是原因,那么您可以通过向数据库添加约束来防止腐败。添加外键约束,唯一性约束以及有助于防止数据损坏的所有内容。

然后管理员需要在篡改之前故意撤消这些限制,这可以防止大多数意外损坏,但当然不会防止恶意破坏行为。

如果您关心保护您的知识产权,可以加密程序化组件(存储过程,视图和函数)。这种加密不是很强大,但可以防止随意检查。

加密是通过在创建或更改语句使用

WITH ENCRYPTION 

条款加入。