Sql server 2008 从应用程序外访问数据库

Sql server 2008 从应用程序外访问数据库,sql-server-2008,Sql Server 2008,我在共享服务器上有一个网站。它使用Sql server作为数据库(也是共享的),其帐户仅限于执行过程。现在我想知道是否有人可以访问sql server而不需要我的凭据(通过使用他们自己的凭据)就可以读取和操作我的数据?如果是这样,我如何跟踪登录到数据库的用户,更重要的是如何阻止他们?有两种方法可以使用SQL登录或windows身份验证连接到SQL。这些是您对服务器的登录。要连接到数据库,必须授予您对数据库的权限。因此,只要您的登录名是唯一一个被授予DB权限的登录名,那么您就不必担心 根据您对数据

我在共享服务器上有一个网站。它使用Sql server作为数据库(也是共享的),其帐户仅限于执行过程。现在我想知道是否有人可以访问sql server而不需要我的凭据(通过使用他们自己的凭据)就可以读取和操作我的数据?如果是这样,我如何跟踪登录到数据库的用户,更重要的是如何阻止他们?

有两种方法可以使用SQL登录或windows身份验证连接到SQL。这些是您对服务器的登录。要连接到数据库,必须授予您对数据库的权限。因此,只要您的登录名是唯一一个被授予DB权限的登录名,那么您就不必担心

根据您对数据库拥有的权限,您可以在数据库中设置角色,并将用户分配给角色。这样,任何人都可以在数据库中执行任何操作的唯一方式是,他们是您设置的角色的成员(或者他们在服务器上有SA帐户,或者在数据库上也设置了dbo权限)


同样,根据您在服务器上拥有的权限,您可以设置跟踪(google sp_trace_create和sp_trace_setevent)来捕获对数据库的登录,这会写入服务器的硬盘驱动器,然后您可以使用fn_trace_gettable查询此数据。

问题超出了执行权限和日志访问权限


底线是,您和您的数据受主机的支配。如果他们可以信任并且胜任,那么您的数据应该是安全的。但是,如果您不确定,或者如果您存储的数据太有价值而不能冒险,您唯一的选择就是对数据进行加密,这样就无法从中发现任何有用的信息,并确保您有备份,或者找一个不同的主机提供适当的保护措施。

我完全同意您的回答,但我怀疑“取决于您的权限”位将导致OP失败。如果他们只是拥有一个具有执行权限的帐户,他们将无法阻止甚至检测其他用户的参与。没错,我假设是网站拥有执行权限,而不是用户,否则他们将如何创建表、存储过程,首先是数据库上的视图等。所以,现在有办法阻止sa用户!?否sa登录(以及具有sa权限的所有登录)完全控制服务器。一些公司将从服务器上删除sa登录,但服务器上始终至少有一个具有sa访问权限的登录。这样他们就可以使用该用户在服务器上执行所有配置。