标签: sql-server

为什么允许每个人都使用 sa 登录名是不好的做法?

甚至 Microsoft也不鼓励使用 SQL Server 身份验证模式,但我们的应用程序需要它。

我读过最好的做法是不要让用户sa直接使用登录名,而是使用 Windows 身份验证并允许这些帐户(或帐户组)系统管理员权限。

  • 本质上不是一回事吗?有什么优点/缺点?
  • 最佳实践如何提高我的 SQL Server 实例的安全性?
  • 这仅适用于生产实例,还是也适用于我们的内部开发实例?

security sql-server

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

如何强制 SQL Server Management Studio 更新 IntelliSense 缓存?

除非我将其关闭并重新启动,否则 SSMS 中的 IntelliSense 不会更新。我尝试在 SSMS 会话处于活动状态时断开与服务器的连接并重新连接,但这不起作用。

重建步骤:

  1. 创建一个表
  2. 从那个表中选择一些东西
  3. SSMS 在其下方显示波浪形红线,并提示“无效对象名称”
  4. 执行查询

如何在不重新启动 SSMS 的情况下强制 IntelliSense 更新?

sql-server ssms intellisense metadata

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

报告服务和应用程序角色

第一张海报,长期潜伏在这里。在报告中激活应用程序角色的最佳方法是什么?

我尝试了不同的方法,到目前为止唯一有效的方法是像这样嵌入对应用程序角色的调用:-

EXEC sp_setapprole 'REPORTZ', 's3cr3t';
select *
from mytable
where ID < 10000
Run Code Online (Sandbox Code Playgroud)

在数据集中。它确实有效......但不是我喜欢的(当然不是我想要进入生产环境的形状)。

我更希望我可以在运行时通过自定义程序集或报告服务中的某种“服务器挂钩”以某种方式“劫持”或“注入”应用程序角色激活行(在这两种情况下,我都不知道如何)

非常感谢您的时间+亲切的关注。

是的。

sql-server ssrs role

25
推荐指数
1
解决办法
742
查看次数

如何使用 Windows 身份验证使链接服务器正常工作?

我正在尝试在域环境中使用“使用登录名的当前安全上下文制作”将链接服务器连接到在另一台服务器上创建的 ServerA,即 ServerB。我读到我需要为在每台服务器上运行 SQL Server 的服务帐户创建 SPN 才能启用 Kerberos。我已经这样做了,现在两者都显示身份验证方案是 Kerberos,但是,我仍然面临错误:

"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'".
Run Code Online (Sandbox Code Playgroud)

在 Active Directory 中,我可以看到 ServerB 的服务帐户被信任用于委派 MSSQLSvc,但我注意到 ServerA 的服务帐户尚未启用“信任此用户进行委派”。目标服务器是否也需要启用该选项?要能够使用当前的 Windows 登录名来使用链接服务器,还需要什么吗?

sql-server-2008 authentication sql-server linked-server kerberos

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

如何删除SSMS中的换行符?

我正在处理如下所示的 SQL

create procedure


as


begin
Run Code Online (Sandbox Code Playgroud)

注意大的差距,例如asbegin

我怎样才能删除这些?我使用了 SQL 格式化程序,但这不起作用。

sql-server ssms

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

最大用户连接数

在 SQL Server 2012 标准版中,我知道最大用户连接数是 32,767。如果我正朝着这个数字前进,作为 DBA 我应该怎么做?

目前有 30,000 个用户连接,这个数字预计还会增加。

在此处输入图片说明

sql-server max-connections sql-server-2012 connections

25
推荐指数
2
解决办法
6万
查看次数

两个日期列的 SARGable WHERE 子句

对我来说,我有一个关于 SARGability 的有趣问题。在这种情况下,它是关于对两个日期列之间的差异使用谓词。这是设置:

USE [tempdb]
SET NOCOUNT ON  

IF OBJECT_ID('tempdb..#sargme') IS NOT NULL
BEGIN
DROP TABLE #sargme
END

SELECT TOP 1000
IDENTITY (BIGINT, 1,1) AS ID,
CAST(DATEADD(DAY, [m].[severity] * -1, GETDATE()) AS DATE) AS [DateCol1],
CAST(DATEADD(DAY, [m].[severity], GETDATE()) AS DATE) AS [DateCol2]
INTO #sargme
FROM sys.[messages] AS [m]

ALTER TABLE [#sargme] ADD CONSTRAINT [pk_whatever] PRIMARY KEY CLUSTERED ([ID])
CREATE NONCLUSTERED INDEX [ix_dates] ON [#sargme] ([DateCol1], [DateCol2])
Run Code Online (Sandbox Code Playgroud)

我会经常看到的是这样的:

/*definitely not sargable*/
SELECT
    * ,
    DATEDIFF(DAY, [s].[DateCol1], [s].[DateCol2])
FROM
    [#sargme] AS [s] …
Run Code Online (Sandbox Code Playgroud)

performance index sql-server query-performance

25
推荐指数
3
解决办法
3116
查看次数

序列 - 无缓存 vs 缓存 1

SQL Server 2012+ 中SEQUENCE声明的 usingNO CACHE和声明的 using之间有什么区别CACHE 1吗?

序列#1:

CREATE SEQUENCE dbo.MySeqCache1
AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 9999
    NO CYCLE
    CACHE 1;
GO
Run Code Online (Sandbox Code Playgroud)

序列#2:

CREATE SEQUENCE dbo.MySeqNoCache
AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 9999
    NO CYCLE
    NO CACHE;
GO
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别吗?在 SQL Server 2012+ 环境中使用时,它们的行为会有所不同吗?

sql-server sequence sql-server-2012

25
推荐指数
1
解决办法
5250
查看次数

是否从 SQL Server 2016 安装介质中删除了 Management Studio?

我刚刚尝试安装 SQL Server 2016 Enterprise,但我注意到默认情况下未安装 Management Studio。我还注意到安装指南中有一个指向 SSMS 的单独链接,指向https://msdn.microsoft.com/en-us/library/mt238290.aspx

这个决定的原因是什么?

在上面的 URL 中注明以下内容:

这个普遍可用的 SSMS 版本是免费的,安装和使用不需要 SQL Server 许可证。

或许,就是这样?

sql-server ssms

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

SQL Server 2017 备份时崩溃,因为文件路径错误

我试图恢复我的数据库和 SQL Server 不断崩溃。我会在 SSMS 中收到一条消息,指出存在网络传输错误(连接因崩溃而中断)。我检查了日志,发现 SQL Server 意外关闭。然后我将不得不去重新启动服务。

我将问题缩小到 GUI 试图运行的脚本。问题是在进行尾日志备份时,备份文件的路径是错误的。它应该是D:\mapbenefits\...

BACKUP LOG [mapbenefits]
TO  DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak'
WITH NOFORMAT, NOINIT,  NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24',
    NOSKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 5
Run Code Online (Sandbox Code Playgroud)

我有两个问题。

  1. 如何修复此路径?我尝试进入服务器设置,备份路径D:没有斜线。如果我添加斜杠,gui 会将其删除。这是 SSMS v17.9.1。我可以选择D:\mapbenefits\并且有效,但我想要D:\DATABASE\...

  2. 这是一个错误吗?SQL 服务器是否应该因为路径输入错误而崩溃?一旦我修复了文件路径,它就没有问题了。我可以通过整理文件路径随时复制。

如果我运行查询来检查版本,我会得到 CU13,但如果我进入设置,我会看到版本 14.0.1000.169。

看起来这是一个错误并且可以重现,所以我将它发布到这里:https : //feedback.azure.com/forums/908035-sql-server/suggestions/36920542-incorrect-filepath-with-backup-log-command-原因

sql-server backup sql-server-2017

25
推荐指数
1
解决办法
1733
查看次数