SQL Server和客户端之间有什么关系?

时间:2010-06-13 07:58:09

标签: sql-server client-server n-tier-architecture

此问题是我在此处提出的上一个问题的更新版本。

我是SQL Server作为关系数据库的客户端 - 服务器模型的新手。我已经读过SQL Server的公共访问不安全。如果直接访问数据库不是一个好习惯,那么应该在服务器和客户端之间放置什么样的层?请注意,我有一个桌面应用程序,它将作为客户端和远程SQL Server数据库,为客户端提供数据。客户端将输入其用户名和密码以查看其数据。我听说过VPN,ISA,TMG,终端服务,代理服务器等术语。我需要一个快速安全的n层架构。

P.S。我听说过数据库前的Web服务。我可以使用WCF来检索,更新,插入数据吗?在安全性和性能方面它会是一个好方法吗?

1 个答案:

答案 0 :(得分:2)

Web服务层对于智能客户端来说非常常见,因为它是用户客户端和服务器之间的一个层。这允许:

  • 简单网络(仅限http)
  • 你有一个app-layer,可以放置验证等而不会破坏db
  • 您可以拥有与db
  • 无关的安全性
  • 数据库可以作为更少的帐户(应用帐户)运行,允许更大的连接池
  • 您可以“扩展”应用层
  • 你可以在db
  • 之上缓存等
  • 您可以拥有更丰富的应用层,提供的服务多于SQL Server提供的服务
  • 客户端有一个已知的API,从不知道db(这是一个实现细节)

您可以使用WCF与应用层进行通信,但您不应该考虑“INSERT”,“UPDATE”等 - 您应该考虑对您的域模型有意义的操作 - “CreateOrder” “操作等.ADO.NET数据服务允许API更类似于”INSERT“等,但它不像您希望的那样必须用于安全服务。

性能实际上是“我在运行什么样的查询?”的一个因素。和“我转移了多少数据?”。只要你保持操作正常(即不通过网络获取整个“订单”数据只是为了找到最近的订单日期),那么你应该没问题。