SQL Server - SQL Server Authentication 与 Windows Authentication

身份验证(Authentication)是任何安全策略的关键组成部分。

在本文中将讨论SQL Server身份验证(SQL Server authentication) 和Windows身份验证 (Windows authentication)。

连接

连接是一切的起端。为了建立成功的数据库连接,客户端或其他应用需要以下信息:

SQL Server的域名

数据库实例名

端口号

身份验证的凭据(用户名和密码)

例如,假设使用网上银行。为了访问帐户,需要输入凭据信息以进行身份验证。当提供有效凭据时,银行会识别您的身份,并在验证后允许访问其服务。

同理,在登录SQL Server时,用户需要输入有效凭据,以便SQL Server可以验证其身份并授予适当的访问权限。

SQL Server提供两种服务器身份验证模式:

1.     Windows身份验证

2.     SQL Server和Windows身份验证模式(混合模式)


两种身份验证模式

在安装 SQL Server期间可以定义身份验证方法,或者在安装成功后,手动更改。

下面让我们进一步深入了解SQL Server和Windows身份验证的优缺点。

SQL Server authentication

数据库管理员创建SQL登录并为用户提供适当的权限以向SQL Server进行身份验证。 用户在连接SQL Server时需要指定登录名和密码,如下所示


SQL Server authentication

用户的凭据存储在主数据库Master ,从而信息验证。

SQL Server身份验证的缺点

1.    用户需要记住SQL登录凭据,并在每次连接到SQL Server时在连接字符串中提供这些凭据。如果有多个SQL             Server,用户可能很难跟踪每个实例的密码。

2.    SQL Server以加密形式将密码存储在主数据库Master中。黑客可以通过访问数据库来窃取信息。

3.    不能使用SQLServer身份验证登录来实施其他(自定义)帐户策略。

4.    增加了数据库管理员的登录管理任务和工作。

5.    需要管理每个SQL登录的安全策略。 无法为组织中的所有账户定义通用策略。

SQL Server身份验证的最佳实例

1.    如果旧应用程序和第三方软件不支持Windows (AD)身份验证,SQLServer身份验证可以帮助连接数据库。

2.    可能需要来自不受信任域的用户连接到SQL Server。在这种情况下,应用程序可以在连接字符串中指定SQL           登录并连接到数据库。

3.    不属于Active Directory (AD)组成员连接SQL实例。

4.    可以帮助SQLServer支持用户创建自己的身份的Web应用程序。

5.    在云中实施SQL数据库,即Azure SQL数据库或AWSRDS,则会默认SQL Server身份验证的登录凭据。

6.    可以使用SQLServer身份验证从Linux和macOS等跨操作系统连接数据库。

Windows authentication

在Windows身份验证中,用户应首先在Active Directory中对进行身份验证。SQL Server通过操作系统中的Windows主体令牌(TOKEN)对用户进行身份验证。 这样,SQLServer就不会要求输入密码来进行身份验证。 使用Windows身份验证的连接称为可信连接或集成连接。


Windows authentication

Windows身份验证的优点

1.    Windows身份验证是连接到SQL Server的一种安全方式,它使用TOKEN和SPN进行身份验证,使用                      Kerberos 身份验证协议。因此,它不会通过网络发送密码,并且可以防止通过网络窃取密码。

2.    SQL Server不存储用户的凭据。

3.    使用Kerberos安全协议,可以实施复杂密码、帐户锁定和密码过期等密码策略。

4.    Windows身份验证可实现职责分离。Active Directory (AD)团队管理AD用户。而DBA添加AD用户并设置适当           的权限。

5.    Active Directory有助于创建Windows组。AD团队可以在一个AD组中添加多个需要同等访问权限的人员。稍后,您可以在SQL实例中添加组并提供组级别的权限。因此,如果有新人加入,一旦他成为AD组的一部分,就会自动授予跨该AD组所在服务器的数据库访问权限。同样,一旦用户离开组织并且他们的ID从这些AD组中删除,他们就无法再访问数据库。

Windows身份验证的缺点

1.    DBA无法控制AD登录名和组。

2.    DBA不知道AD组成员身份。如果从AD组中添加或删除用户,DBA不会收到通知。

概括

本文概述了SQL Server身份验证和Windows身份验证。希望它可以帮助您了解这些身份验证方法之间的差异,以决定哪种方法最适合您的业务和环境。

SQL Server身份验证可以在与SQL Server相同的计算机上使用,也可以在远程连接上使用。如果在Active Directory环境中工作,建议使用Windows身份验证。如果在非Active Directory环境中工作,则可以将SQL Server身份验证用于数据库连接。

Windows身份验证确实为在SQL Server中管理登录提供了更高的安全性和灵活性。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容