小编DBA*_*ser的帖子

具有只读应用程序意图的 SSMS 注册服务器

我们正在使用 AlwaysOn 进行 SQL Server 2014 POC 测试,其中一位用户询问是否使用本地服务器组中的注册服务器保存具有只读意图的 SSMS 配置。这样他们就不必在每次需要访问只读副本时都输入别名。

不幸的是,与常规对象浏览器不同,注册服务器中没有选项可以添加 ApplicationIntent 选项。

我从 Microsoft 看到了这篇关于更改 RegSrvr.xml 中的连接字符串的文章。

https://connect.microsoft.com/SQLServer/feedback/details/786323/ssms-sql-server-management-studio-2012-missing-connection-properties-for-availability-groups

我尝试了他们的建议,但在通过注册服务器中的本地服务器连接时,它没有连接到正确的副本节点。

使用连接窗口 > 附加连接参数中的选项时,对象资源管理器中的只读选项工作正常。但它不会保存对连接所做的更改。

有没有人知道使用 SSMS保存具有只读意图属性的配置的任何替代解决方案?在此先感谢您的帮助。

sql-server ssms availability-groups sql-server-2014

11
推荐指数
2
解决办法
8704
查看次数

跨数据库链接与可信选项

最近,我们有一个存储过程请求,需要跨多个数据库进行访问。当然,这种情况并不少见,但在我们的案例中,之前我们使用了服务帐户,并且该服务帐户具有对所有数据库的读/写权限。

但是现在我们将所有权限更改为windows登录AD组,AD组中的用户没有对所有数据库的所有权限。

例子:

  • AD 组 UG1 有 10 个用户,它们是数据库 A 上的用户。
  • 存储过程 PROCA 驻留在数据库 A 中,但对属于数据库 B 和数据库 C 的表进行了选择。
  • 执行权限已授予存储过程 PROCA 和 AD 组 UG1,因为已在数据库 B 和数据库 C 上创建用户(没有其他权限)。
  • DatabaseA、DatabaseB 和DatabaseC 的数据库所有者在登录XXX 下。

众所周知,这种跨数据库的权限可以通过

  • 选项 1:在所有数据库上打开数据库跨链,或
  • 选项 2:为 AD 组 UG1 提供所需的数据库(B 和 C)的单个对象权限或
  • 选项 3:在 DatabaseA 上使用 Trustworthy db 选项并更改存储过程 PROCA 以包括作为“dbo”用户执行,以便权限可以模拟。
  • 选项 4:使用证书

我的问题是,关于安全性和保持简单和安全的最佳解决方案是什么?

请注意,没有任何开发人员是任何数据库的数据库所有者,并且提升的权限仅分配给 DBA,因此有人进行黑客攻击或 SQL 注入或冒充系统管理员的可能性是“无”的。

但同样,我想知道在这种情况下你会怎么做?我更喜欢选项3。

sql-server-2008 security sql-server

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

规范化数据库中的非规范化表设计?

上周,开发人员和 DBA 就开发人员在我们的 OLTP 环境中创建的具有 400 多个列以及 VARCHAR、日期时间和浮点数组合的一组表进行了讨论。当被问及这种非规范化表的原因时,我们被告知供应商是如何提供记录记录集的,因此映射表必须以这种方法设计。此外,表将用于跨其他规范化表的交叉连接,并且表可能会增长到更大的大小。目前,几乎没有表(375 列)具有类似的设计,并且同一数据库中的平均行数为 300 万或更多。这些现有的非规范化表按日期分区。这些现有表没有性能问题,因为它们还没有被大量使用。

问题:

  1. 除了说这是一个糟糕的设计之外,您是否看到这种设计有任何明显的问题可以说服开发人员在规范化环境中重新考虑他们的设计策略。当然,归一化与非归一化各有优缺点。
  2. 根据您的经验,您是否看到过此类列式表的任何常见实时性能问题,例如锁定、DML 等需要更长的时间?开发人员甚至提到如果 SQL Server 出现任何性能问题,可以考虑将 MongoDB 作为他们的替代方案。
  3. 如果在 OLTP 中更频繁地设计此类表,您是否有一些可能发生的高级性能问题。请注意,如果需要解决任何 IO 或 CPU 问题,该公司可以灵活地添加 CPU 或内存。

我知道在 SQL 2012 中,有列存储索引,但尚未探索。

performance database-design

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

AlwaysOn 可用性组延迟副本

使用 AO SQL 2012,是否可以将其中一个成员配置为延迟副本?我知道理想情况下我们希望同步它,但在人为错误的情况下,这将使我们能够检查辅助节点并从辅助节点恢复未提交的数据。在我们之前的一个设置中,我们使用了日志传送,其中还原到一个辅助服务器的时间延迟了一个小时。因此,在出现任何数据问题时,我们能够更快地恢复数据,而不是恢复整个数据库并恢复到时间点。任何输入表示赞赏...提前致谢

sql-server sql-server-2012 availability-groups

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