以下是引用片段: CREATE ENDPOINT myEndpoint STATE=STARTED AS HTTP (PATH = ''/MyHttpEndpoint'', AUTHENTICATION = (KERBEROS), PORTS = (CLEAR), SITE = ''MySqlServer'') FOR SOAP (WSDL = DEFAULT, DATABASE = ''myDB'', NAMESPACE = ''http://example.com/MySqlServer/myDB/WebService'') |
SQL Server 2008支持监听HTTP和在TCP上的用户定义的端口的终端。你还可以使用许多格式来格式化请求:SOAP、Transact-SQL 、专用于Service Broker 的格式、和另一个用于数据库镜像的格式。当使用SOAP时,你可以利用Web服务安全性(WS-Security)头来验证SQL Server 登陆。
Microsoft 实行Web Service 终端验证来支持极广泛的协议和规格,本篇白皮书描述了其中的一部分。你将需要打开你的验证选项并确保客户端可以提供所需的凭证类型。一旦SQL Server 验证通过了客户端,你就可以授予这个登陆被授权可以访问的资源,如下一节所描述的。
4. 授权
在验证之后,该考虑验证过的登陆可以做些什么了。在这个领域,SQL Server 2008和SQL Server 2005比之前的版本更加灵活。现在的权限更加细粒度了,因此你可以授予所要求的专门的权限,而不是授权给具有一个固定角色的成员,这很可能会承载比它所需的权限更多的权限。你现在具有更多的要保护的实体,你可以对它们分配更细粒度的权限。
除了加强用户数据的保护,关于一个细粒度的要保护的结构信息和元数据现在只可用于具有权限访问这要保护的信息的主体。
此完,还可以使用一个机制创建定制权限集合,这个机制允许一个人定义安全上下文,存储过程可以运行在这个上下文之下。
此外,SQL Agent 使用灵活的代理scheme 来允许工作步骤运行和访问所要求的资源。所有这些特性使得SQL Server更加复杂但是更加安全。
4.1 细粒度权限
SQL Server 2008和SQL Server 2005在许多方面比之前的版本更加安全,其中之一就是改进的细粒度权限。之前,一个管理员需要给一个在固定的服务器角色或固定的数据库角色中的用户成员授予权限,以执行特定的操作,但是通常情况是,这些角色具有比执行这些简单工作所需的权限多很多的权限。这个最小权限的原则要求一个用户只有要做这个工作的最少的权限,所以分配给用户广泛的角色以执行很少的工作违反了这个原则。
固定服务器和数据库角色的集合从SQL Server 2000以来没有怎么改变,所以你仍然可以在用户或应用程序要求所有或大部分定义的权限时利用这些预定义的权限集。可能最大的改变就是添加了一个public服务器角色。然而,最小权限的原则要求你不使用一个不是正好适用于这个原则做这个工作所需要的角色。尽管它要求更多的工作来发现和指派某原则所需的权限,但是它可以生成一个更加安全的数据库环境。
4.2 主体和可得到的
在SQL Server 2008中,一个主体是任何单独的、可以要求访问受保护的资源并可被授予权限来访问它的个体、组或过程。在SQL Server的之前版本中,你可以定义一个Windows中的主体或者你将它基于一个SQL Server登陆而不和Windows主体关联。下面的列表显示了SQL Server 2008主体的层次,不包括固定服务器和数据库角色,以及你可以怎样匹配登陆和数据库用户来保护对象。这个主体的影响范围取决于它的定义的范围,因此一个Windows级别的主体比一个SQL Server级别的主体范围更广。每一个数据库用户会自动地属于固定的公共(public)角色。
Windows级别主体
· Windows域登陆
&