标签: authentication

向从任何主机连接的用户授予表权限

我有一个用户帐户——我们称之为“wordpress”——我需要允许访问同一服务器上另一个电子商务数据库中的一些目录表。我已经为用户配置了三个允许连接的主机掩码:'localhost'、Web 服务器的 IP 地址和 Web 服务器的主机名。没有问题。

'wordpress' 用户还可以完全访问自己的数据库,这是通过 MySQL Workbench 中的 Schema Privileges 部分授予的。在这里,它显示主机是“%”,这正是我想要的,因为我不想为同一用户管理三组重复的权限。如果我查看 mysql.db,我会看到这些权限,在 Host 列中带有“%”。

所以现在我想对另一个数据库中的几个表授予 SELECT 权限 - 我们称之为“存储”。所以我试试这个:

GRANT SELECT ON store.catalog TO 'wordpress'@'%';
Run Code Online (Sandbox Code Playgroud)

我得到“在用户表中找不到任何匹配的行”,原因很明显,“%”不是我明确允许此特定用户建立连接的主机掩码。那么从任何允许的主机掩码向用户授予表权限的正确语法是什么?MySQL Workbench 是如何获得架构权限的?我不必手动将行插入到 mysql.tables_priv 中,对吗?

更新:为了澄清,这是当前用户/授权表的样子。很明显,我已经匿名了一些名字。请注意,架构权限表中的主机是“%”,但该主机没有任何用户。我如何让 MySQL 允许我使用模式对象授权来做到这一点?最好不要直接在 mysql.tables_priv 中乱搞,但如果归结为它,我会这样做。

mysql> SELECT user, host FROM mysql.user WHERE user = 'wordpress';
+-----------+-----------+
| user      | host      |
+-----------+-----------+
| wordpress | 10.0.0.22 |
| wordpress | webserver |
| wordpress | localhost |
+-----------+-----------+
3 rows in set (0.00 sec)

mysql> SELECT …
Run Code Online (Sandbox Code Playgroud)

mysql authentication mysql-5.5

6
推荐指数
1
解决办法
5万
查看次数

使用缓存凭据连接到 SQL Server

在从 SQL 身份验证(用户密码)迁移到集成安全性时,我遇到了意想不到的需求组合。

  • SQL 客户端是在 LOCALSYSTEM 或 NETWORKSERVICE 帐户下运行的服务
  • SQL 客户端使用集成安全连接到本地 SQL Server
  • 系统在AD域中。
  • 即使与域控制器的网络连接一次中断数小时或数天,也必须成功建立数据库连接

幸运的是,SQL 客户端和 SQL Server (2005 SP4) 总是在同一个机器上运行。

阅读的结论、迄今为止所做的实验以及对 MS 的支持电话似乎是,无论使用 Kerberos 还是 NTLM,我都无法同时满足所有这些要求。

另一方面,我看到一些对缓存凭据的引用,这让我希望在某些情况下,在先前成功登录域(服务启动或先前建立的连接)之后,可以使用缓存凭据以某种方式连接到数据库.

  1. 在长时间的 DC 中断期间,是否有人成功使用缓存的域凭据从在域帐户下运行的服务连接到本地 SQL Server?那是怎么配置的?有什么安全影响?

  2. 以上四个要求真的不相容吗?

sql-server-2005 authentication sql-server

6
推荐指数
1
解决办法
2589
查看次数

SQL Server 和 SSPI 握手失败错误

最近我遇到了一个问题,来自一个域的用户无法登录 SQL Server 并收到此错误:

错误:17806,严重性:20,状态:2。SSPI
握手失败,错误代码为 0x8009030c,同时建立具有集成安全性的连接;连接已关闭。[客户:xxxxxx]

错误:18452,严重性:14,状态:1
。用户登录失败”。用户未与受信任的 SQL Server 连接相关联。[客户:xxxxxx]

我们有两个域,比如说 A 和 B。我的 SQL Server 在域 B 中运行。在正常情况下,两个域用户都能够连接。但是前几天,域A的所有用户都无法连接到域B中运行的SQL Server。但是域B的用户却能够成功连接。用户联系 SQL Server DBA 团队调查问题。

当我检查时,即使我无法使用 SSMS 并使用域 A 的凭据远程连接到 SQL Server。但是,当我尝试使用域 A 的凭据对服务器进行 RDP 时,它工作正常,并且在远程访问 SQL Server 后也开始工作美好的。所以在我看来,当我对服务器进行 RDP 时,某些东西得到了刷新并且我的登录远程开始正常工作。我确信实际问题与 AD 和 kerberos 身份验证有关,但无法证明。

我在网上研究了这个问题,并找到了两个解决方案来解决它。一是修复故障 DC,二是重新启动运行 SQL Server 的服务器。我采用了第二种方式,因为 Windows 管理员不接受这是 DC 问题。我从 SQL 端检查了所有内容,最近没有任何变化。还发现在运行 SQL Server 的服务器上记录以下事件后,此问题开始发生:

日志名称:系统
来源:NETLOGON
日期:xxxxxxxx
事件 ID:5719 任务
类别:无
级别:错误
关键字:经典
用户:不适用
计算机:xxxxxxxxxx
描述:这台计算机无法与域控制器建立安全会话domain xxxxxx 由于以下原因: 当前没有可用于为登录请求提供服务的登录服务器。这可能会导致身份验证问题。确保此计算机已连接到网络。如果问题仍然存在,请联系您的域管理员。

附加信息 如果此计算机是指定域的域控制器,它会设置与指定域中的主域控制器模拟器的安全会话。否则,此计算机将与指定域中的任何域控制器建立安全会话。

我的问题是:

  1. 如何证明这是域控制器问题?
  2. 服务器重启如何解决这个问题? …

authentication sql-server windows-server

6
推荐指数
1
解决办法
5241
查看次数

是否可以将 sql 登录名分配到组中?

对于该站点来说,这可能是一个太基本的问题,但是是否可以使用组来控制 SQL Server 身份验证登录?那么是否可以在组下分配 sql 登录名并为这些组提供权限?如果是这样,这些组是否仅针对相关实例可见?

authentication sql-server

5
推荐指数
1
解决办法
1万
查看次数

始终以 SA 而不是 Windows 帐户登录

首先,如果我听起来很愚蠢,我想道歉,因为我对 SQL Server 没有太多了解。

我最近开始了一个使用 SQL Server 2008 R2 的项目。我可以使用 Windows 身份验证访问数据库。登录后,我可以访问所有数据库等...我的问题是,对于我的用户 DOMAIN/Glen,我想为其中一个数据库添加默认架构。我已经在相关数据库下的用户部分中更改了“DOMAIN\Glen”的默认架构,但是每当我在表上运行没有架构前缀的脚本时,它都不会运行。

我一直在环顾四周,尝试了一些东西,据我所知,我出于某种原因使用 SA 帐户而不是 DOMAIN\Glen 登录名。

如果有人可以帮助我将我的登录用户从 SA 更改为 DOMAIN\Glen,那将是一个很大的帮助。

谢谢

博尔东伦


编辑

当我直接在服务器上访问数据库时,它以 DOMAIN\Glen 的身份登录,但是当我从我的计算机访问它时,它以 SA 的身份登录。


编辑 2

此外,当我通常连接到服务器上的 SQL Server 时,我会获得我添加的默认架构,但是如果我以管理员身份在服务器上运行 SQL Server,我将获得 dbo 的默认架构。


有任何想法吗?

schema authentication sql-server

5
推荐指数
1
解决办法
171
查看次数

使用 Windows 身份验证从另一台没有 Active Directory 的 PC 连接到 SQL Server

我在 PC 上安装了 SQL Server 2008 R2 Express。

我有一些其他 PC 连接到本地网络上的这台 PC。

目前,这些 PC 使用 SQL 身份验证连接到 SQL Server,但我希望它们使用 Windows 身份验证连接到 SQL Server。

我们没有 Active Directory 域。所有 PC 都是“WORKGROUP”工作组的一部分。

authentication sql-server sql-server-2008-r2 connectivity

5
推荐指数
1
解决办法
6754
查看次数

使用 SQL 登录名的人是谁?

是否可以找出谁使用了 SQL-Server 登录?

让我们假设我们怀疑有人滥用 SQL 登录名,该登录名本应由应用程序仅用于登录 SQL-Server。使用SQL登录的域用户是否记录在任何地方,以便我们得出谁使用它的结论?

authentication sql-server sql-server-2008-r2 users logins

5
推荐指数
2
解决办法
2996
查看次数

在不同域中使用Windows身份验证连接到sql server

我发现在使用 Windows 身份验证连接到远程 SQL Server 或其他域时我们有两个选择:

  1. runas /netonly 方法
  2. 添加 Windows 凭据

但是Windows身份验证不就意味着登录Windows的用户拥有使用SQL Server的身份验证吗?

因此,由于我不是远程服务器中的授权登录名或用户,我的意思是我不是他们计算机上的 Windows 用户,我如何连接到他们的服务器?

这样每个知道我的域名和实例名的人都可以连接到我的机器。

安全性怎么样?我们是否必须添加其他 Windows 用户或计算机才能连接到我们的 SQL Server?

我相信我们必须将其他计算机添加到我们的域中,或者我们必须将其他域添加到我们的域中受信任。

请帮忙; 我错过了什么?

authentication sql-server

5
推荐指数
1
解决办法
1万
查看次数

SQL Server SSL 加密 - 自签名证书有效 - 为什么?

我意识到这是一种奇怪的行为,我想知道在使用 SQL Server 生成的自签名证书时它是否应该以这种方式工作。

  1. 设置“加密连接”选项的客户端(Management Studio),客户端将在 SQL Server 端验证自签名证书并失败,因为自签名证书不受信任

  2. 客户端 (Management Studio)没有设置“加密连接”选项,但使用 SQL Server 配置管理器在 SQL Server 端打开了“强制加密”。客户端不会验证自签名证书,并将成功连接加密连接。

问题

  1. 在服务器端强制执行加密时,为什么客户端不尝试验证 SQL Server 自签名证书?为什么客户端只在客户端强制加密时验证自签名证书?

  2. 如果服务器端加密没有在客户端进行证书身份验证,那么使用 CA 签名证书有什么意义?

更准确地说:当仅打开服务器端加密时,为什么客户端(Mgmt Studio)不尝试验证/验证证书(无论是自签名/CA 签名)?当客户端加密(“加密连接”)打开时,为什么客户端只对服务器提供的证书进行身份验证/验证?

我添加了一个签名证书(由内部 CA 签名)用于服务器端加密。这需要在客户端计算机上安装内部 CA 证书(到受信任的根 CA),但我没有这样做。但是,当服务器端加密打开时,客户端(mgmt studio)仍然连接成功。

authentication sql-server encryption connections certificate

5
推荐指数
1
解决办法
8235
查看次数

使用 SQL Server 身份验证连接到 Azure SQL 数据库的速度缓慢

在 SSMS 中,当使用服务帐户和 SQL Server 身份验证连接到任何 Azure SQL 数据库时,连接本身可能需要 10 到 15 秒才能建立。

连接后,右键单击任何表,然后单击“选择前 1000 行”,这也需要 10 到 15 秒的时间来响应并在 SSMS 中显示行。

使用“Active Directory - Universal with MFA Supprt”身份验证时,不会发生任何延迟/滞后 - 但是,这不使用相同的服务帐户。

如何解决/调查 SQL Server 身份验证延迟?

authentication sql-server ssms azure-sql-database

5
推荐指数
1
解决办法
5012
查看次数