最近,我们有一个存储过程请求,需要跨多个数据库进行访问。当然,这种情况并不少见,但在我们的案例中,之前我们使用了服务帐户,并且该服务帐户具有对所有数据库的读/写权限。
但是现在我们将所有权限更改为windows登录AD组,AD组中的用户没有对所有数据库的所有权限。
例子:
众所周知,这种跨数据库的权限可以通过
我的问题是,关于安全性和保持简单和安全的最佳解决方案是什么?
请注意,没有任何开发人员是任何数据库的数据库所有者,并且提升的权限仅分配给 DBA,因此有人进行黑客攻击或 SQL 注入或冒充系统管理员的可能性是“无”的。
但同样,我想知道在这种情况下你会怎么做?我更喜欢选项3。
我有一个 20 GB 的数据库,它的事务日志坚持超过 7 GB。
当我使用此脚本找出该数据库中最大对象的大小时,我发现它们相对较小。
我一直在使用默认跟踪来查看此事务日志何时自动增长,但我没有发现。
DECLARE @path NVARCHAR(260);
SELECT
@path = REVERSE(SUBSTRING(REVERSE([path]),
CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
DatabaseName,
[FileName],
SPID,
Duration,
StartTime,
EndTime
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 93 -- log autogrow event
ORDER BY StartTime DESC;
Run Code Online (Sandbox Code Playgroud)
我还尝试了这里的一些脚本,以检查哪些事务正在填充日志,但找不到任何事务。
我相信一定有一些非常长的事务同时进行,或者至少有一个较长的事务正在执行。
我怎样才能检查这些(long transactions in the database)?
在 LIVE 中,这是一个完整恢复模式数据库,是alwayson 的一部分。在 TEST 中,这是一个简单的恢复模式数据库,但由于所有作业都在那里,日志仍然增长到 7GB。
sql-server optimization transaction transaction-log sql-server-2016
在对 sql server 2016 SP1 应用累积更新时,需要停止大量服务和应用程序才能继续进行更新。
其中包括虚拟机的核心,即 VMware Tools 核心服务。
停止此应用程序的所有实例以继续更新是否安全?
什么是安全的方法?
sql-server virtualisation windows-server sql-server-2016 patching