什么是外部登录?
外部登录是指在不需要本地账户的情况下,使用第三方身份验证(如 Microsoft 账户、Google 账户或 Facebook 账户等)登录到某个应用程序或服务。在 MSSQL 数据库中,外部登录指的是使用 Windows 身份验证进行登录。
Windows 身份验证介绍
Windows 身份验证是一种基于 Windows 帐户的身份验证方式。它使用你的 Windows 帐户来确认你的身份,而不用输入用户名或密码。这种身份验证方式在许多应用程序中都得到了广泛的应用。在 MSSQL 数据库中,你可以使用 Windows 身份验证来登录数据库。
Windows 身份验证提供了许多优点,如:
使用 Windows 帐户,无需输入用户名和密码
安全性更高,密码不会被保存在应用程序中
使用域控制器验证,可以很容易地管理用户和组
MSSQL 数据库外部登录的实现
在 MSSQL 数据库中,使用 Windows 身份验证进行外部登录非常容易。下面介绍如何实现外部登录。
创建 Windows 身份验证登录用户
首先,我们需要创建一个 Windows 身份验证登录用户。在 MSSQL Management Studio 中,我们可以通过以下步骤创建用户:
在“安全性”文件夹中,选择“登录名”节点,右击并选择“新建登录名…”
在“登录名”选项卡中,输入登录名,并选择“Windows 身份验证”
在“服务器角色”选项卡中,选择该登录名所需的服务器角色
在“用户映射”选项卡中,为该登录名选择要访问的数据库和相应的用户,或者在“数据库角色成员资格”选项卡中为该登录名分配相应的数据库角色
点击“确定”按钮保存该登录名
通过以上步骤,我们就成功创建了一个 Windows 身份验证登录用户。接下来我们需要在应用程序中进行相应的配置。
在应用程序中进行 Windows 身份验证配置
在应用程序中,我们需要按照以下步骤配置 Windows 身份验证:
在应用程序的连接字符串中,将“Integrated Security”属性设置为“SSPI”或“true”
如果应用程序是 Web 应用程序,需要在 Web.config 文件中将 authentication mode="Windows"
如果应用程序是 Windows 程序,需要在代码中将连接字符串传递给 System.Data.SqlClient.SqlConnection 类的构造函数
通过以上步骤,我们就完成了 Windows 身份验证的配置。现在,我们可以使用 Windows 身份验证登录到 MSSQL 数据库中。
在 MSSQL 数据库中测试外部登录
为了测试 Windows 身份验证的登录功能,我们可以使用 SQL Server Management Studio(SSMS)进行测试。在 SSMS 中,我们可以按照以下步骤测试外部登录:
启动 SSMS,并输入数据库服务器的名称
在“登录”对话框中,选择“Windows 身份验证”
输入本地的 Windows 用户名和密码,然后点击“连接”按钮
通过以上步骤,我们就可以使用 Windows 身份验证登录到 MSSQL 数据库中了。
结论
MSSQL 数据库中的 Windows 身份验证提供了一种简单、方便、安全的外部登录方式。通过创建 Windows 身份验证登录用户,并在应用程序中进行相应的配置,我们可以轻松地实现外部登录功能,提高应用程序的用户体验,并提升应用程序的安全性。
/* 创建 Windows 身份验证登录用户 */
CREATE LOGIN [Domain\UserName] FROM WINDOWS;
GO
/* 为 Windows 身份验证登录用户分配服务器角色 */
EXEC sp_addsrvrolemember @loginame = N'Domain\UserName', @rolename = N'sysadmin';
GO
/* 为 Windows 身份验证登录用户分配数据库角色 */
USE [TestDB];
CREATE USER [Domain\UserName] FOR LOGIN [Domain\UserName];
GO
ALTER ROLE [db_owner] ADD MEMBER [Domain\UserName];
GO
/* 查询 Windows 身份验证登录用户 */
SELECT * FROM sys.syslogins where name = 'Domain\UserName';
GO
/* 测试 Windows 身份验证登录 */
sqlcmd -S localhost -E