SQLServer 中的身份验证及登录问题

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQLServer 中的身份验证及登录问题

SQLServer中的身份验证及登录问题


身份验证

SQL Server支持两种身份验证模式,即Windows身份验证模式和混合模式。

  • Windows身份验证是默认模式(通常称为集成安全),因为此SQL Server安全模型与Windows紧密集成。信任特定Windows用户和组帐户登录SQL Server已经过身份验证的Windows用户不必提供附加的凭据。
  • 混合模式支持由WindowsSQL Server进行身份验证。用户名和密码保留在SQL Server内。

安全说明

我们建议尽可能使用Windows身份验证。Windows身份验证使用一系列加密消息来验证SQL Server中的用户。使用SQL Server登录时,将跨网络传递SQL Server登录名和密码,这样会降低它们的安全性

使用Windows身份验证时,用户已登录到Windows,无需另外登录到SQL Server。下面的SqlConnection.ConnectionString可指定Windows身份验证,而无需用户名或密码。"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;

说明

登录名与数据库用户名不同。您必须通过单独的操作将登录或Windows组映射到数据库用户或角色。然后向用户或角色授予访问数据库对象的权限

身份验证方案


在下列情形中,Windows身份验证通常为最佳选择:

  • 存在域控制器。
  • 应用程序和数据库位于同一台计算机上。
  • 您正在使用SQL Server ExpressLocalDB的实例。

SQL Server登录常常在以下情况中使用:

  • 您有工作组。
  • 用户从其他不受信任的域进行连接。
  • Internet应用程序(例如ASP.NET)。

说明

指定Windows身份验证不会禁用SQL Server登录。使用ALTER LOGIN DISABLE Transact-SQL语句可禁用具有高级权限的SQL Server登录

 

登录类型


SQL Server支持三种登录类型:

  • 本地Windows用户帐户或受信任的域帐户。SQL Server依靠Windows来对Windows用户帐户进行身份验证。
  • Windows组。向Windows组授予访问权限会向作为该组的成员的所有Windows用户登录授予访问权限。
  • SQL Server登录。SQL Server将用户名和密码的哈希都存储在master数据库中,使用内部身份验证方法来验证登录尝试。

说明

SQL Server提供了从证书或非对称密钥创建的登录名,仅用于代码签名。这些登录名不能用于连接到SQL Server

 

混合模式身份验证


如果您必须使用混合模式身份验证,则必须创建SQL Server登录名,这些登录名存储在SQL Server中。然后,您必须在运行时提供SQL Server用户名和密码。

 

安全说明

SQL Server使用名为sasystem administrator的缩写)的SQL Server登录名进行安装。sa登录分配一个强密码,并且不要在应用程序中使用sa登录。sa登录名会映射到sysadmin固定服务器角色,它对整个服务器有不能撤销的管理凭据。如果攻击者以系统管理员的身份获取了访问权限,则可能造成的危害是无法预计的。默认情况下,Windows BUILTIN\Administrators组(本地管理员组)的所有成员均为sysadmin角色的成员,但可以从该角色中移除这些成员。

SQL Server提供了在Windows Server 2003或更高版本上运行时SQL Server登录的Windows密码策略机制。密码复杂性策略通过增加可能密码的数量来阻止强力攻击。SQL Server可将Windows Server 2003中使用的相同复杂性和到期策略应用于SQL Server中使用的密码。

安全说明

连接来自用户输入的连接字符串会使您遭受连接字符串注入攻击。可使用SqlConnectionStringBuilder在运行时创建语法构成有效的连接字符串。有关更多信息,请参见连接字符串生成器

安装说明

如果在安装过程中选择混合模式身份验证,则必须为名为sa的内置SQL Server系统管理员帐户提供一个强密码并确认该密码。 sa帐户通过使用SQL Server身份验证进行连接。

如果在安装过程中选择Windows身份验证,则安装程序会为SQL Server身份验证创建sa帐户,但会禁用该帐户。

 

登录问题

如下,遇到18456登录错误问题(注:安装完用sa用户和密码,以sqlserver身份验证模式可以登录,就是不能以Windows身份验证登录)


 

 

解决方法:

1.开始菜单中找到配置管理工具并打开

 


2.如图,找到服务,右键服务,然后设置登录方式为“本账户”,账户名为计算机登录用户名,密码为计算机登录密码,重新启动服务


 

 

ok

 

问题:当再次切换到本地系统,重启服务,发现不能启动了,咋办?

解决方法:进入Windows控制面板,找到对应服务,右键-属性,设置登录为本地系统账户,重启服务,ok

 

 

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
2月前
|
SQL 安全 数据库
|
2月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
4月前
|
SQL 弹性计算 数据管理
数据管理DMS产品使用合集之sql server实例,已经创建了数据库,登录时提示实例已存在,该怎么处理
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
54 1
|
5月前
|
SQL 安全 数据库
SQL Server 2022 安装步骤——SQL Server设置身份验证教程
SQL Server 2022 安装步骤——SQL Server设置身份验证教程
490 0
|
SQL 关系型数据库 BI
通过WebShell登录SQL Server主机并使用SSRS报表服务
本文将为您介绍如何使用RDS实例的主机账号登录到RDS SQL Server实例主机中。您可以在登录主机后使用SSRS(SQL Server Reporting Services)服务管理和操作SQL Server数据库。
通过WebShell登录SQL Server主机并使用SSRS报表服务
|
SQL 数据安全/隐私保护 Windows
SQLserver改本机用户密码 登录已锁定
在不知道密码的前提下 ,使用SQL Server Management Studio ,选择Windows身份验证,无需验证用户名密码。 然后依次打开安全性--->登录名--->找到你要修改密码的用户,右键---属性 进入这个页面
|
SQL 安全 Java
mybatis学习(10): sql server身份验证和windows身份验证
mybatis学习(10): sql server身份验证和windows身份验证
485 0
|
SQL Shell 数据库
SQLServer删除登录记录用户名和密码
原文:SQLServer删除登录记录用户名和密码 介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们。
1662 0
|
SQL Shell 数据库
SQLServer删除登录记录用户名和密码
介绍: 作为一名开发人员都会知道我们做的项目都要用到数据库,数据库都需要账号和密码,然而问题来了,做的东西多了那些没用的账号和密码还在哪里纠缠着我们。所有我们不能忍了删除掉他。 网上很多都是2008的是删除方案,知道我看到了这篇:http://stackoverflow.
1865 0
|
SQL 网络协议 数据库
sqlserver服务器名称改成本地IP地址登录
原文:sqlserver服务器名称改成本地IP地址登录 在安装sqlserver2008、2012等时选择的是默认实例,服务器名称也就是电脑的名称,特别是登录本地的数据库,需要输入电脑用户名称加上SQLEXPRESS 例如:zhangsan\SQLEXPRESS 而不是自己本机的ip地址:192.168.1.xx  内部网络别的电脑也无法访问。
3538 0