小编Yas*_*irA的帖子

用户登录失败错误:18456,严重性:14,状态:11

我有一个 AD 组XYZ,我已将其添加到具有data_reader权限的SQL Server 安全性中。

XYZ组中有大约 10 名能够成功访问 SQL Server 数据库的用户。我最近向该组添加了一个新用户(在 AD 级别),但此人无法访问 SQL Server(通过 Mgmt Studio)并且他收到以下错误

用户登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。检查以前的错误。

错误:18456,严重性:14,状态:11。

我已经验证 AD 权限设置正确,用户已重新启动他的机器,他不属于任何具有DENY访问权限的组,并且 SQL ServerXYZ组已被删除并读取到 Mgmt Studio 中的 SQL Server 实例,并且服务器已重新启动。

关于如何进一步进行的任何想法?

谢谢!

sql-server sql-server-2008-r2 active-directory

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

SQL Server 2008:如何在 SQL Server 代理作业中的一个步骤失败但整体作业成功时发送电子邮件

我有一个包含 6 个步骤的 SQL Server 作业。无论前四个步骤是否失败,都必须运行步骤 5 和 6,因此如果前四个作业失败,则将它们设置为跳到步骤 5。

但是,如果第 5 步和第 6 步成功,则整个工作被视为成功。我为作业失败设置了电子邮件通知,但如果前四个步骤中的任何一个由于整体作业被视为成功而失败,我将不会收到电子邮件。我希望这种情况发生。

将前四个步骤拆分为单独的工作并不理想,因为它们必须在第 5 步和第 6 步开始之前完成。

请任何人都可以给我建议来解决这个问题,以便:

  1. 即使步骤 1-4 中的任何一个失败,步骤 5 和 6 也会运行。
  2. 步骤 5 和 6 必须在步骤 1-4 完成之前开始。
  3. 当步骤 1-4 中的任何一个失败时,会发送一封电子邮件通知,指示失败的步骤。

非常感谢您的帮助。

sql-server-2008 sql-server

7
推荐指数
2
解决办法
3万
查看次数

触发器上的锁定升级问题

我继承了一个 SQL Server 2005 数据库,该数据库每天出现 2-3 次死锁。

我已将其追踪到白天运行的计划作业,并使用触发器插入到表中。

触发器包含对另一个表的 10 次更新,这些更新的条件略有不同。死锁发生在触发器中。

当一个人提出申请并且工作正在运行时,就会发生死锁。应用程序插入到与预定作业相同的表中。

在此处输入图片说明

从跟踪来看,似乎发生在进程 1 获得键锁,进程 2 获得页锁,然后进程 1 将键锁升级为页锁并且进程 2 尝试获取键锁时发生的情况。

我添加了缺失的索引,这似乎有所帮助,但它仍在发生。我不是 DBA,因此对于解决此问题的方法的任何建议将不胜感激。

我添加了死锁 xml 的链接 - 这是我为复制问题所做的测试。

死锁xml

sql-server-2005 sql-server deadlock

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

无法在 pgadmin 查询工具中设置最大检索行数

我使用的是 1.16.1 版,但找不到要调整的“max(imum) rows”参数。任何帮助,将不胜感激。

postgresql pgadmin

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

TFS 2012 - 数据库项目 - 没有登录映射到 Windows 的用户 - 最佳实践

我在 TFS 2012 中有一个 SQL Server 数据库项目 (.NET 4.5)。作为 DBA,我正在寻找一种机制,开发人员可以通过该机制创建“CREATE USER”sql 脚本并在数据库中分配他们的权限以匹配应用程序,而无需需要知道它最终映射到什么登录名。这是因为我想隐藏实时和测试环境中的登录名,并让 DBA 根据需要在每个环境中创建这些登录名。

如果我进入项目并创建一个新用户,即 [MyApplication],则默认脚本建议使用以下模板:

CREATE USER [MyApplication]
    WITHOUT LOGIN
    WITH DEFAULT_SCHEMA = dbo
GO
Run Code Online (Sandbox Code Playgroud)

这很棒,因为我可以创建一个映射到无登录的用户,然后在部署时我可以运行:

ALTER USER [MyApplication] WITH LOGIN=[MyApplicationLogin], Name=[MyApplication]
Run Code Online (Sandbox Code Playgroud)

只要将用户映射到 SQL 登录名就可以了。如果登录要映射到 Windows 登录,当我们尝试重新映射时,SQL 会抛出错误:

Msg 33016, Level 16, State 1, Line 1
The user cannot be remapped to a login. Remapping can only be done for users that were 
mapped to Windows or SQL logins.
Run Code Online (Sandbox Code Playgroud)

所以问题是,在项目中设置它的最佳方法是什么,以便开发人员可以创建一个用户,该用户可以在数据库用户中任意命名,然后我们将如何将其重新映射到 Windows 身份验证登录?

提前致谢!

security sql-server sql-server-2012

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

使用 LOAD 命令 mysql 时跳过列

我有一个包含 5 列的 csv 文件,我只想加载其中的一个,有没有办法做到这一点。我想使用 MySQL 5.5 的 LOAD 语句欢迎任何指针,将不胜感激

mysql mysql-5.5

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

许多嵌套对象的 SA 权限问题

我有一个相对复杂的经纪人应用程序。

今天,在我进行了一些更改后,我开始收到错误消息:

服务器主体“sa”无法在当前安全上下文下访问数据库“XYZ”。

到错误点为止的整个场景是:

(在数据库ABC 中

  • 代理消息被提交到队列中
  • 队列阅读器拿起它
  • 队列读取器更新表以指示工作正在开始
  • 该表有一个更新触发器。触发
    • 检查数据库XYZ 中的表以确保此字段的插入值有效
    • 该表通过同义词访问

我认为触发器中的检查是导致问题的原因。

如果我手动运行更新,它工作正常。我也曾经EXECUTE AS手动运行更新,因为sa它工作正常。

其他相关事实:

  • sa是数据库ABC和数据库XYZ的所有者
  • sa 帐户没有什么有趣的事情 - 它也是两个数据库中的 db_owner 角色

是否有某种奇怪的作用域发生,因为所有这些都在代理的上下文中运行?

更新

更多信息:

  • 数据库所有权链接在服务器级别上,但不在数据库中。我打开它并没有什么区别。
  • 使用三部分名称而不是同义词没有区别
  • 探查器跟踪显示这些语句作为 SA 而不是另一个登录运行
  • 将两个数据库 TRUSTWORTHY 设置为 ON 没有任何区别
  • 如果我手动运行队列激活过程,它会正确处理(在我的凭据下)。

security sql-server permissions sql-server-2008-r2 service-broker

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

如何减少镜像期间的网络延迟?

我们使用 SQL Server 2008 R2 标准版进行镜像。

但是我们发现网络延迟太高了。当镜像处于活动状态时,完成一个事务需要将近四倍的时间。是否可以用直接交叉电缆连接这两个服务器并强制sql server使用此链接进行镜像?那会有帮助吗?

我们已经在这两个服务器之间设置了交叉电缆。但是我们如何配置sql server使用这个链接进行镜像呢?

任何帮助将不胜感激。

sql-server mirroring sql-server-2008-r2

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

一个文件组,多个数据文件,如何获取每个文件中的表列表

在我的一个生产数据库中,我有一个包含 3 个数据文件的文件组,这些文件位于 3 个不同的磁盘上。此文件组上有 50 多个表。

如何确定 3 个数据文件之间 50 个表中每一个的位置?我需要知道每个表的聚集索引驻留在哪个数据文件上。

例子 :

Table A : Datafile 1 : FG1
Table B : Datafile 2 : FG1
Table C : Datafile 1 : FG1
Table D : Datafile 3 : FG1
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server filegroups

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

从 .sql 文件导入 SQL Server 数据库

我想在不知道.sql文件名称的情况下导入数据库。

MySql服务器中很容易,因为有像 heidSQL 这样的工具,我可以在其中轻松地从 sql 文件中导入我的数据库,但在 SQL Server 中我找不到执行此操作的方法。

我试图在记事本中读取文件,但编码使内容不可读。

jj

当我执行这个查询时,RESTORE HEADERONLY FROM DISK = N'C:\Planning\bdd.sql'我有这个 呵呵

  1. 我怎样才能用 SQL 服务器做到这一点?
  2. SQL Server Management Studio 可以执行此任务还是必须安装新工具?

sql-server import

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