代码之家  ›  专栏  ›  技术社区  ›  J Weezy

集成服务目录文件夹权限已更改

  •  2
  • J Weezy  · 技术社区  · 6 年前

    问题:ssisdb或msdb中的任何SQL Server系统表是否包含允许我发现哪些用户正在更改Integration Services目录中的文件夹权限的信息?

    背景:我看到一个SQL代理作业失败,错误描述如下:

    无法访问包或包不存在。验证 包存在,并且用户有权访问它。

    在研究这个问题时,我发现服务帐户对包含相关包的文件夹的权限已经被删除。我想执行诊断,看看是谁删除了权限,什么时候删除了权限。

    此外,我们的IT运营团队的配置管理一直是一个挑战,因为至少在以下方面,SQL服务器没有跨环境(即开发、测试、阶段和生产)保持一致:

    1. 补丁管理
    2. 内存管理
    3. 许可权限管理

    研究:我检查了msdb中的sysssispackages表,但这似乎没有帮助,ssisdb中的表都是基于整数的。我的背景是数据库开发,而在数据库管理方面的背景则更少。感谢您的帮助。

    2 回复  |  直到 6 年前
        1
  •  2
  •   billinkc    6 年前

    不会审核ssisdb对权限的更改。

    当您使用UI为文件夹/项目授予/拒绝权限时,该权限将转换为调用 catalog.grant_permission / catalog.deny_permissions 这些检查您是否在管理角色(服务器或数据库)中,如果是,则调用 internal.update_permission Grant与Deny的值为0/1。

    与2014年相比,我进行了测试,但如果在2016/2017/2019年有任何不同,我会感到惊讶。

    SQL Server本身通过系统跟踪跟踪权限更改。假设更改是最近的,您可以尝试这样的查询

    SELECT
        f.ObjectName
    ,   f.NTUserName
    ,   f.StartTime AS ChangeStartTime
    ,   f.EventClass
    ,   t.start_time AS TraceStartTime
    ,   t.last_event_time AS TraceLastEventTime
    ,   t.event_count
    ,   f.DatabaseID
    ,   f.TransactionID
    --,   f.NTDomainName
    ,   f.HostName
    ,   f.ClientProcessID
    --,   f.ApplicationName
    ,   f.LoginName
    ,   f.SPID
    ,   f.EventSubClass
    ,   f.ObjectID
    ,   f.ObjectType
    ,   f.DatabaseName
    FROM
        sys.traces t
        CROSS APPLY sys.fn_trace_gettable(REVERSE(SUBSTRING(REVERSE(t.path), CHARINDEX('\', REVERSE(t.path)), 260)) + N'log.trc', DEFAULT) f
    WHERE
        t.is_default = 1
        AND f.EventClass IN
        (102, 103, 104, 105, 106, 108, 109, 110, 111)
        AND f.DatabaseName = 'SSISDB';
    

    事件类分组位于 https://www.databasejournal.com/features/mssql/a-few-cool-things-you-can-identify-using-the-default-trace.html

        2
  •  1
  •   Hadi    6 年前

    我不认为ssisdb或者msdb包含有关权限更改审核的信息。如果认为这应该在SQL Server数据库引擎上完成。您应该有一个审核过程来监视SQL Server实例上的所有更改。

    您可以参考以下链接了解有关如何跟踪或审核权限更改的详细信息:

    要查看存储在msdb和ssisdb中的表和信息,请检查以下链接: