2010-05-01 125 views
17

我有点困惑SQL服务器的Windows登录和凭证。在网上的书籍上,它表示证书可以访问sql server以外的资源,但据我看到,windows登录可能能够做到这一点,因为它被映射到Windows用户。我是否缺少别的东西?SQL Server 2008中登录和凭证有什么区别?

谢谢,提前。

回答

7

在SQL Server的早期版本中,如果有需要访问外部的东西的SQL Server在其下SQL Server服务正在运行,使用的是证书的服务帐户。通过指定凭证,您可以说,如果用户X运行存储过程或查询哪个访问资源Y,则使用凭证Z作为帐户来访问它。

@Remus Rusanu 您将使用CREATE LOGIN创建的SQL Server登录与使用CREATE CREDENTIAL创建的不同概念(称为凭据)相混淆。有关更多详情,请参阅http://www.replicationanswers.com/Security2005.asp

+1

我在他的回答中没有看到任何这样的混淆,我认为你一定误解了它,Remus Rusanu在SQL Server团队工作,所以他不太可能会混淆所述...... – 2016-05-21 18:23:48

3

凭证需要覆盖登录时的情况实际上是而不是是Windows用户。典型情况是SQL登录(用户通过SQL身份验证而不是集成身份验证进行身份验证)。

9

凭证是包含连接到资源SQL Server之外所需要的认证信息的记录。大多数凭据由Windows登录名和密码组成。在Microsoft Windows Server 2003和更高版本上,密码可能不是必需的。

单个凭证可以被映射到多个SQL Server登录。但是,SQL Server登录只能映射到一个凭证。

只有用户改变任何CREDENTIAL权限的用户可以创建或修改的凭证。

7

登录: 登录信息会被授予访问SQL Server实例的任何主体。访问权限可授予域用户,域组或SQL Server身份验证帐户。

凭据: 的凭证提供了一种机制来存储登录为SQL Server中的域帐户信息。然后可以使用该凭证将该身份验证信息传递到另一个登录名或代理,以授予其对SQL Server外部资源的权限。

.....使用登录 如果您需要登录并访问SQL Server实例,您只需使用登录。无论您的需求如何,如果您需要进入并开展工作,登录路径即可。其他两个人根本无法帮你。

凭据的使用 .. 当来自域用户的权限需要授予通常不具有这些权限的帐户或服务时,凭据将被引入。例如,如果程序集需要EXTERNAL_ACCESS,那么可以通过使用凭证来授予这些权限。凭证还可以用来授予SQL身份验证帐户访问外部资源的权限。

1

的凭证还可以用来允许SQL Server访问的Windows Azure Blob存储账户。在这种情况下,凭据将不会存储Windows登录名和密码,而会存储Azure存储帐户名称以及存储帐户访问密钥。

更多细节在这里: https://msdn.microsoft.com/en-us/library/jj720554(v=sql.120).aspx

或者在这里: https://msdn.microsoft.com/en-us/library/dn466435(v=sql.120).aspx

,如果你想备份或从Azure的BLOB容器恢复数据库这是非常方便。

相关问题