AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 163742
Accepted
Shoeless
Shoeless
Asked: 2017-02-10 06:05:03 +0800 CST2017-02-10 06:05:03 +0800 CST 2017-02-10 06:05:03 +0800 CST

无法以 AD 组成员身份登录 SQL Server

  • 772

我为 AD 组创建了一个登录名:

CREATE LOGIN [MYDOMAIN\Development Admins] FROM WINDOWS WITH DEFAULT_DATABASE=[master]

该 AD 组的成员之一是名为 DBGuy 的用户。如果我执行,我可以在这个 AD 组中看到 DBGuy 用户

xp_logininfo 'MYDOMAIN\Development Admins', 'members'

但是,如果我尝试使用 DBGuy 帐户登录,则会收到错误消息:

错误号:18456
严重性:14
状态:1
行号:65536

在错误日志中我看到:

用户“MYDOMAIN\DBGuy”登录失败。原因:找不到与提供的名称匹配的登录名。[客户:192.168.50.127]

其他一些信息......

  • 其他 AD 帐户在 Windows 登录时似乎工作正常,我只是对这个组有问题。
  • 我发现 Aaron Bertrand 的一篇文章描述了有关连接中默认数据库的类似问题 - 我已在连接设置中将默认数据库设置为master。
  • 一篇博文建议使用exec sp_change_users_login Report它来寻找孤儿用户;这为我返回零行。
sql-server sql-server-2014
  • 5 5 个回答
  • 15520 Views

5 个回答

  • Voted
  1. Aaron Gonzalez
    2020-06-13T14:22:22+08:002020-06-13T14:22:22+08:00

    这是一个旧线程,但当我遇到同样的问题时,它是谷歌上的第一个热门话题。

    我的两分钱:在我的情况下,AD 组是一个分发组,而不是一个安全组,因此它不能用于授予对 SQL Server 的访问权限。

    • 5
  2. axawire
    2020-11-20T07:43:00+08:002020-11-20T07:43:00+08:00

    TLDR;确保用户在客户端建立连接的本地 Windows 机器上重新进行身份验证。

    根据我的经验,当您连接到 SQL 时,SQL 似乎不会检查组成员身份,而是依赖连接客户端提供它们所属的安全组信息。如果本地客户端经过身份验证 - 在他们进入 AD 安全组之前登录 Windows,则新的组成员身份将丢失,并且登录将被拒绝。但是,如果用户在添加到 AD 时未登录其本地客户端,并且在添加到 AD 组后必须登录,则它会正常工作。

    • 4
  3. Shoeless
    2017-12-14T04:56:00+08:002017-12-14T04:56:00+08:00

    很明显,最初的 AD 小组“被灌输”了一些东西。我创建了第二个组,它与第一个组的定义基本相同,并验证了新组工作正常。然后我删除了原来的AD组。

    我再也没有遇到过这个问题。如果我这样做,我肯定会在重新创建 AD 组之前尝试@AshburnRK 的解决方案,看看它是否有效。

    • 3
  4. Best Answer
    Ashburn RK
    2017-08-05T12:13:00+08:002017-08-05T12:13:00+08:00

    我注意到类似的问题,安装后我被锁定在 SQL Server 之外。所以我启动了 SQL Server 2014,在单用户模式下使用 -m 选项并登录到服务器 SQL Management Studio。我验证了 AD 组配置正确但没有做任何修改。我注销了 SQL 服务器,并以 AD 组的成员身份再次尝试,这次我能够连接。

    这是全新安装后第二次发生这种情况。起初我认为这是我的错,但现在我确信 SQL 服务器中有一些东西一开始没有提取 AD 信息。

    • 2
  5. Rod Argumedo
    2019-10-26T12:25:07+08:002019-10-26T12:25:07+08:00

    我发帖这么晚。这可能是组类型权限问题。为了使 AD 的 SQL Server 组 Windows 身份验证正常工作,您需要执行以下步骤:

    • 以管理员或域控制器中的域管理员的任何人(或您自己)身份登录。
    • 打开Active Directory 用户和计算机,然后单击用户。
    • 创建一个新组并为其命名(右键单击并单击New ... > Group)
    • 确保将组设置为通用,并将其他所有内容保留为默认值。
    • 点击刚刚创建的新组
    • 在“成员”部分的新创建组中添加一些 AD 用户。
    • 单击确定。

    在 SQL Server Management Studio 中,您需要为组创建登录名才能访问服务器:

    • 以管理员身份登录。
    • 展开安全文件夹
    • 右键单击登录名,然后单击新建登录名。
    • 在登录名字段中,单击搜索。
    • 默认情况下,组不会显示在列表中。单击对象类型,选中组框,然后单击确定。
    • 输入新创建的组名,然后单击Check Names。(如果没有检测到,请点击Advanced并点击Find Now)
    • 如果组匹配,请单击确定
    • 如果您需要为特定数据库设置权限,您现在可以这样做。
    • 单击确定以创建组登录。

    这将允许 AD 组正确登录。我已经用 AD 对一个新的 SQL Server 2017 实例进行了测试,对我来说效果很好。

    • -1

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve