SQL Server提供了从证书创建登录的选项。 E.g。
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<loginName> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO
然而,documentation州(强调我的):
根据证书或非对称密钥创建的登录仅用于代码签名。 它们不能用于连接SQL Server 。只有在master中已存在证书或非对称密钥时,才能从证书或非对称密钥创建登录。
创建不能用于连接服务器的登录有什么意义?
我们需要对中间层应用程序进行一些安全性更改。特别是它如何连接到它的数据库。 的权力规定:&#34;我们不能使用Windows身份验证&#34;。
我知道这通常是首选方法,但有权访问中间层服务器的任何人都可以访问与应用程序相同的数据库。
如果我们使用SQL身份验证,我们需要:
虽然以上是可能的,但我有点希望:
上述文件摘录似乎与此相矛盾。
答案 0 :(得分:5)
它用于对SQL Server数据库对象进行代码签名。此处详细说明了CREATE LOGIN x FROM CERTIFICATE y以及SQL Server 2008和2008 R2的示例和方案:http://technet.microsoft.com/en-us/library/ms345102(v=sql.105).aspx
以下是在SQL Server 2014中签署存储过程的一个很好的示例:http://technet.microsoft.com/en-us/library/bb283630.aspx
答案 1 :(得分:0)
如果无法使用 Windows 身份验证,您可以使用 SQL 登录对中间层服务器中的配置进行加密:
https://docs.microsoft.com/en-us/previous-versions/aspnet/zhhddkxy(v=vs.100)